下面是关于“Docker镜像构建之docker commit的使用”的完整攻略。
什么是docker commit
在Docker中,我们可以通过基础镜像来创建新的镜像。Docker的基础镜像是有多层组成的,而通过docker commit,我们可以将容器中的改动转换为新的镜像。
docker commit命令的基本用法
docker commit的基本用法为:
docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
其中,仓库名可以是Docker Hub上的形式,也可以是本地的形式,如果没有指定标签,则默认为latest。
注意:通过docker commit创建的镜像,其并没有构建的Dockerfile,因此尽量避免直接使用docker commit去创建生产环境下需要的镜像。
docker commit的示例如下:
示例1
首先,对原本的Ubuntu镜像进行更改,如更新系统软件包列表:
docker run -it --name test-ubuntu ubuntu:18.04
# 在容器内执行以下命令:
apt-get update
然后输入 exit 命令退出容器。
执行 docker commit 命令,将容器中的改动转换为新的镜像:
docker commit test-ubuntu new_ubuntu:latest
执行docker images命令,查看新生成的镜像:
docker images
示例2
该示例展示如何创建一个基于一个应用容器的img镜像,实现通过Dockerfile进行应用容器化部署。
- 创建一个Nginx容器并对其更改:
docker run -it --name test-nginx nginx:latest
# 在容器内切换到nginx的配置目录,并编写一个新的nginx配置文件
cd /etc/nginx/
echo "server { listen 8080; server_name localhost; location / {root /usr/share/nginx/html; index index.html;} }" > 新配置文件 nginx.conf
exit
- 通过docker commit生成新的镜像:
docker commit test-nginx new_nginx:latest
- 创建Dockerfile文件并编写容器化部署内容
# 该Dockerfile文件从基础镜像new_nginx开始(也可以直接使用nginx)
FROM new_nginx:latest
# 将本地的src目录扔到容器内的/data目录中
ADD ./src /data/
# 使用指定目录下的nginx配置文件替换原有文件
COPY ./nginx.conf /etc/nginx/nginx.conf
# 开放8080端口
EXPOSE 8080
# 启动时使用nginx
CMD [ "nginx", "-g", "daemon off;" ]
- 构建镜像并启动容器:
# 通过docker build构建镜像
docker build -t app_nginx:v1 .
# 启动容器,映射8080端口
docker run -d --name app_nginx -p 8080:8080 app_nginx:v1
至此,基于Dockerfile的应用容器部署完成。
以上就是有关“Docker镜像构建之docker commit的使用”的完整攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker镜像构建之docker commit的使用 - Python技术站