1. 闲不住的人首页
  2. Docker

docker commit指令创建镜像

生产中我们制作镜像应该使用 Dockerfile 制作镜像,使用 commit 制作的镜像如果不是自己制作的我们无法知道别人在里面究竟做了什么。

现在我们定制一个 Nginx Web 服务器为例子演示docker commit 如何制作镜像

1. 使用官方的 nginx 镜像启动一个容器并将容器的 80 端口映射到宿主机的 81 端口:

root@gitlab-opsbj:~ # docker run -d --name nginx -p 81:80 nginx

2. 使用curl 命令直接访问宿主机机的 81 端口可以看到默认的 Nginx 欢迎页面

root@gitlab-opsbj:~ # curl http://localhost:81
请求nginx容器
请求nginx容器

3. 修改 Nginx 默认的首页

将默认的 Welcome to Nginx 修改为 Welcome to Docker 我们可以使用 docker exec 命令进入容器,修改内容

root@gitlab-opsbj:~ # docker exec -it nginx bash
root@dc5255256e17:/# echo "<h1>Welcome to Docker</h1>" > /usr/share/nginx/html/index.html
root@dc5255256e17:/# cat /usr/share/nginx/html/index.html
<h1>Welcome to Docker</h1>
root@dc5255256e17:/# exit
exit

此时在使用curl命令请求宿主机机 81 端口:

请求修改后的Nginx容器
请求修改后的Nginx容器

现在定制好了默认首页的内容,想保存下来成为镜像,这样下一次运行新的镜像默认首页就是我们修改后的 Welcome to Docker

docker commit 的语法格式为:

docker commit [选项] <容器名或容器ID> [<仓库名>[:<标签>]]
常用的选项:
-a:指定修改的作者
-m:注释信息,记录本次修改的信息
-p:使用commit制作镜像时先暂停容器

规范的镜像名应该为这种格式:

用户名/仓库名:标签

举例:将刚刚修改后的 nginx 容器制作为新的镜像镜像名为 wangenzhi/nginx:v1

root@gitlab-opsbj:~ # docker commit -a "wangenzhi <W_enzhi@163.com>" -m "修改了默认首页" -p nginx wangenzhi/nginx:v1

现在可以使用 docker images 查看我们刚刚制作的镜像:

root@gitlab-opsbj:~ # docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
wangenzhi/nginx     v1                  e328a2a02385        4 minutes ago       109MB

我们还可以使用docker history 查看镜像内的历史记录,如果比较 nginx:latest 的历史记录,会发现我们刚刚提交的这一层。

docker history查看历史记录
docker history查看历史记录

如果觉得文章不错,不妨给个『打赏』写作不易,各位的支持,能激发和鼓励我更大的写作热情。谢谢

原创文章,作者:恩志,如若转载,请注明出处:https://www.xbzdr.com/522.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:510749025@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code