Docker利用commit命令构建镜像的实现示例
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">1. 实战概述</a></li><li><a href="#_label1">2. 实战步骤</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">2.1 下载Nginx镜像</a></li><li><a href="#_lab2_1_1">2.2 创建并启动Nginx容器</a></li><li><a href="#_lab2_1_2">2.3 修改Nginx主页文件</a></li><ul class="third_class_ul"><li><a href="#_label3_1_2_0">2.3.1 备份主页文件</a></li><li><a href="#_label3_1_2_1">2.3.2 修改主页内容</a></li></ul><li><a href="#_lab2_1_3">2.4 启动Nginx服务</a></li><ul class="third_class_ul"></ul><li><a href="#_lab2_1_4">2.5 访问Nginx主页</a></li><ul class="third_class_ul"></ul><li><a href="#_lab2_1_5">2.6 停止Nginx服务并退出容器</a></li><ul class="third_class_ul"></ul><li><a href="#_lab2_1_6">2.7 利用commit命令构建新镜像</a></li><ul class="third_class_ul"></ul><li><a href="#_lab2_1_7">2.8 利用新镜像生成容器并测试</a></li><ul class="third_class_ul"></ul></ul><li><a href="#_label2">3. 实战总结</a></li><ul class="second_class_ul"></ul></ul></div><p class="maodian"><a name="_label0"></a></p><h2>1. 实战概述</h2><p>本实战围绕 docker 部署 nginx 展开,通过拉取最新 nginx 镜像,创建并启动交互式容器,备份并修改默认主页文件,启动 nginx 服务验证访问效果,再通过 commit 命令将修改后的容器构建为新镜像,最后基于新镜像创建容器并测试,完成 nginx 容器的自定义与复用。</p>
<p class="maodian"><a name="_label1"></a></p><h2>2. 实战步骤</h2>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3>2.1 下载Nginx镜像</h3>
<p>执行命令:<code>docker pull nginx:latest</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071497.png" /></p>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3>2.2 创建并启动Nginx容器</h3>
<p>执行命令:<code>docker run --name hw-nginx -p 8080:80 -it nginx:latest /bin/bash</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071443.png" /></p>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3>2.3 修改Nginx主页文件</h3>
<p class="maodian"><a name="_label3_1_2_0"></a></p><h4>2.3.1 备份主页文件</h4>
<p>执行命令:<code>cp /usr/share/nginx/html/index.html /usr/share/nginx/html/index.html.bak</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071487.png" /></p>
<p class="maodian"><a name="_label3_1_2_1"></a></p><h4>2.3.2 修改主页内容</h4>
<p>执行命令:<code>echo "<h1>Welcome to Nginx World~</h1>" > /usr/share/nginx/html/index.html</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071489.png" /></p>
<p class="maodian"><a name="_lab2_1_3"></a></p><h3>2.4 启动Nginx服务</h3>
<p>执行命令:<code>nginx -g "daemon off;"</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071418.png" /></p>
<p class="maodian"><a name="_lab2_1_4"></a></p><h3>2.5 访问Nginx主页</h3>
<p>访问:<code>http://euler01:8080</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071443.png" /></p>
<p class="maodian"><a name="_lab2_1_5"></a></p><h3>2.6 停止Nginx服务并退出容器</h3>
<p>按<code>Ctrl + C</code>停止Nginx服务,再执行命令:<code>exit</code>,退出容器</p>
<p style="text-align:center"><img alt="" height="653" src="https://img.jbzj.com/file_images/article/202512/2025121909071496.jpg" width="679" /></p>
<p class="maodian"><a name="_lab2_1_6"></a></p><h3>2.7 利用commit命令构建新镜像</h3>
<p>执行命令:<code>docker commit hw-nginx hw-nginx:v1</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071461.png" /></p>
<p>执行命令:<code>docker images hw*</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071411.png" /></p>
<p class="maodian"><a name="_lab2_1_7"></a></p><h3>2.8 利用新镜像生成容器并测试</h3>
<p>执行命令:<code>docker run --name test-hw-nginx --hostname master -p 8888:80 -it hw-nginx:v1 /bin/bash</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071465.png" /></p>
<p>执行命令:<code>nginx -g "daemon off;"</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071525.png" /></p>
<p>访问<code>http://euler01:8888</code></p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202512/2025121909071490.png" /></p>
<p class="maodian"><a name="_label2"></a></p><h2>3. 实战总结</h2>
<p>本次实战完整实现了docker中nginx容器的自定义部署流程。从拉取镜像、创建交互式容器,到修改主页内容并验证访问,步骤清晰可复现。通过<code>docker commit</code>将修改后的容器封装为新镜像,解决了容器重启后修改丢失的问题。基于新镜像创建的容器可直接复用自定义配置,测试访问成功。需注意,启动nginx服务时需使用<code>-g "daemon off;"</code>参数保证前台运行,且通过<code>docker images hw*</code>可快速筛选目标镜像,提升操作效率。</p>
<p>到此这篇关于Docker利用commit命令构建镜像的实现示例的文章就介绍到这了,更多相关Docker commit构建镜像内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
頁:
[1]