文章目录
- 前端从 0 到 1 掌握 docker
- 一、docker 的一些基础概念
- 概念定义
- question:什么是docker? 为什么要使用docker?
- 二、实战操作 (墙裂建议读者实操一遍)
- Part1 - Linux CentOS 服务安装 Docker
- Part2 - 启动、使用、查看等命令
- Part3 - 示例:docker 容器运行
- Part4 - 自己写 Dockerfile 创建镜像
- 三、Docker 常见命令汇总
- 对 docker 不是很清楚,但是有对docker感兴趣的同学建议可以看一看该文。.
- 强烈建议跟着 “ 实战操作 ” 部分一起动手操作,自己亲自操作理解会更加深刻。
前端从 0 到 1 掌握 docker
一、docker 的一些基础概念
概念定义
-
Docker images:
Docker 镜像,容器运行的只读模板,操作系统+软件运行环境+用户程序 -
Docker containers:
Docker 容器,包含某个应用运行所需要的全部环境 -
Docker Stash:
Docker 仓库,用来保存镜像,有公有和私有仓库
question:什么是docker? 为什么要使用docker?
-
什么是Dokcer
百科:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 -
简单来说:
就是可以快速部署启动应用,实现虚拟化,完整资源隔离。
一次编写,四处运行
二、实战操作 (墙裂建议读者实操一遍)
- 笔者在梳理相关命令时按实操情况,理解难易,简单分类了一下。关键的操作步骤会提供截图参考,希望大家也能小手动起来!(QAQ)
Part1 - Linux CentOS 服务安装 Docker
# 更新yum源。
yum update# 安装Docker
yum install docker-io -y# 运行Docker
systemctl start docker
Part2 - 启动、使用、查看等命令
# 运行Docker守护进程
systemctl start docker# 查看Docker状态
systemctl status docker# 查看Docker信息
docker info# 停止Docker守护进程
systemctl stop docker# 重启Docker守护进程
systemctl restart docker
Part3 - 示例:docker 容器运行
# 运行 nginx 镜像的容器
docker run --name mydocker-nginx -p 8080:80 -d nginx# 其中:
--name mydocker-nginx:容器的名字叫做mydocker-nginx,名字自己定义
-p: 端口进行映射,将本地 8080 端口映射到容器内部的 80 端口
-d:容器启动后,在后台运行
- 运行 nginx 镜像容器 命令行截图:
- 验证结果截图:
成功访问nginx容器
# 运行 mysql 镜像的容器docker run --name mysql5.7 --restart always -p 3307:3306 -e MYSQL_ROOT_PASSWORD=12345 -v /home/vagrant/mysql5.7/data:/var/lib/mysql -d mysql:5.7
-
运行 mysql 镜像容器 命令行截图:
-
连接容器中的 mysql 数据库 截图:
访问成功哦! -
我们可以发现,其实本地开发环境如果需要用到 mysql、ng等等是不是可以直接用 docker 启动对应容器呢,这样可以随时迁移我们的开发环境。
Part4 - 自己写 Dockerfile 创建镜像
-
一、 创建目录 DockerStudy
-
二、 目录中创建一个 index.html 文件,内容如下
...<h1>Hello docker</h1>
<h1>Hello docker</h1>
<h1>Hello docker</h1>...
- 三、 再在目录中创建一个 Dockerfile 文件,内容如下
FROM nginxCOPY ./index.html /usr/share/nginx/html/index.htmlEXPOSE 80
此时 DockerStudy 目录如下
DockerStudy|____index.html|____Dockerfile
- 四、 打包镜像
cd /usr/local/DockerStudydocker image build ./ -t docker-study:1.0.1docker images
index.html 和 dockerfile 的内容:
我是本地写好再上传到 Linxu 终端
进入对应目录,打包镜像,查看镜像的命令行截图:
- 五、 根据镜像创建容器
docker container create -p 12555:80 docker-study:1.0.1# 刚刚使用 Dockerfile 创建了一个镜像,根据刚刚创建的镜像,创建一个容器docker start a18bd2a88d14# 运行容器, a18bd2a88d14 为你自己的容器 id
根据镜像创建容器 的截图:
去对应端口验证一下我们自己写的 DockerFile创建的镜像容器是否运行成功
三、Docker 常见命令汇总
-
搜索镜像:
docker search xxx -
列出当前系统存在的镜像:
docker images -
拉取镜像:
docker pull xxx -
运行容器
docker run --name xdclass-nginx -p 8080:80 -d nginx
docker run - 运行一个容器, name 或者 containerId-d 后台运行-p 端口映射--name "xxx" 容器名称
-
列举当前正在运行的容器:
docker ps -
列举全部容器:
docker ps -a -
检查容器内部信息:
docker inspect name/containerId -
删除镜像:
docker rmi IMAGE_NAME/containerId -
停止某个容器:
docker stop 容器名称 -
启动某个容器:
docker start 容器名称 -
移除某个容器:
docker rm 容器名称 (容器必须是停止状态) -
查看容器启动日志
docker logs -f 容器 id