目录
2-2--利用 dockerfile 搭建 Centos:7 镜像
1--使用 docker commit 将容器转换为镜像
1-1--容器转换为镜像
# 将容器转换为镜像
docker commit 容器id 镜像名称:版本号
# 将镜像打包为压缩包,用于传输
docker save -o 压缩文件名称 镜像名称:版本号
# 将镜像压缩包解压为镜像
docker load -i 压缩文件名称
1-2--实例代码
① 查看当前容器和当前镜像
sudo docker ps -a
sudo docker images
② 将容器转换为镜像
sudo docker commit 6cad15a02dc2 redis_test1216:1.0
由上图查看镜像可知,基于容器 test1211 成功生成了一个新镜像,其名称为 redis_test1216,版本号为 1.0;
③ 将镜像打包为压缩包
sudo docker save -o redis_1216.rar redis_test1216:1.0
由上图可知,成功生成了一个镜像压缩包文件 redis_1216.rar;
④ 将镜像压缩包解压为镜像文件
sudo docker load -i redis_1216.rar
上图首先删除了 redis_test1216:1.0 镜像,接着通过压缩包进行加载新的镜像 redis_test1216:1.0;
1-3--注意事项
通过 docker commit 将容器转换为镜像的方式,并不会包含数据卷的内容,即新镜像没有原数据卷的内容,而不属于数据卷的内容则会被保留。
2--Dockerfile的使用
2-1--常用关键字
① FROM:指定父镜像,指定dockerfile基于哪个镜像进行创建;
② MAINTAINER:作者信息;
③ LABEL:标签,用来标明 dockerfile 的标签;
④ RUN:执行命令,用于执行一段命令,格式为 RUN command 或 RUN ["command", "param1", "param2"];
⑤ COPY:复制文件,用于 build 的时候将文件复制到 image 中;
⑥ ADD:添加文件,用于 build 的时候添加文件到 image 中,文件可以来源于远程服务;
⑦ ENV:环境变量,指定 build 时候的环境变量,在启动容器的时候可以通过 -e 进行覆盖;
⑧ WORKDIR:工作目录,指定容器内部的工作目录;
2-2--利用 dockerfile 搭建 Centos:7 镜像
① 利用 vim 编写 dockerfile 文件
vim test_dockerfile
FROM centos:7
MAINTAINER test_by_ljf
RUN yum install -y vim
WORKDIR /usr
CMD /bin/bash
② 执行 dockerfile 文件
sudo docker build -f ./test_dockerfile -t ljf_centos:1 .
-f 参数表示要执行的 docker file 文件,-t 表示创建镜像的名称和版本号;
③ 测试查看创建的新镜像
sudo docker images
上图可知,成功由 dockerfile 创建了一个新镜像 ljf_centos!