Docker容器中:使用Docker Commit自定义镜像、并运行订制后的镜像【测试成功】

艺帆风顺 发布于 2025-04-03 22 次阅读


一、需求背景

    一帮情况下,所使用的都是来自于 Docker Hub 的镜像。直接使用这些镜像是可以满足一定的需求,而当这些镜像无法直接满足需求时,我们就需要定制这些镜像,比如公司特定产品版本发布等。

二、Docker Commit简单示例

1、创建nginx容器

    docker run --name webserver -d -p 80:80 nginx

2、修改其中首页文件内容

     docker exec -it webserver bash

echo '

Hello, Docker!

' > /usr/share/nginx/html/index.html

3、查看改动

    [root@Devops ~]# docker diff webserverC /rootA /root/.bash_historyC /usrC /usr/shareC /usr/share/nginxC /usr/share/nginx/htmlC /usr/share/nginx/html/index.htmlC /etcC /etc/nginxC /etc/nginx/conf.dC /etc/nginx/conf.d/default.confC /runA /run/nginx.pidC /varC /var/cacheC /var/cache/nginxA /var/cache/nginx/client_tempA /var/cache/nginx/fastcgi_tempA /var/cache/nginx/proxy_tempA /var/cache/nginx/scgi_tempA /var/cache/nginx/uwsgi_temp

    4、打包修改后的镜像

      docker commit  --author "test"  --message "修改了首页"  webserver  nginx:v0.1

      5、运行定制的镜像

          docker run --name webserv2 -d -p 88:80 nginx:v0.1

        [root@Devops ~]# docker run --name webserv2 -d -p 88:80 nginx:v0.1fdbd2d34017b373fed3bb2401a78b60e4008dfca3fa713e7e541dfc95f180ecd[root@Devops ~]# curl 192.168.1.136:88

        Hello, Docker!