docker学习15-Docker 使用修改后容器来创建镜像
前言
前面讲通过 Dockefile 可以制作自己的镜像,通过镜像创建容器启动服务,有时候需要修改容器里面的内容,比如我们想改点BUG。
我们可以直接在容器里面修改,验证通过后,基于现有的容器创建一个新的镜像。
docker commit
docker commit 命令是从容器创建一个新的镜像, 基本语法
docker commit [OPTIONS] 容器名称或id 镜像名称:tag
PTIONS参数说明:
-a :提交的镜像作者;
-c :使用Dockerfile指令来创建镜像;
-m :提交时的说明文字;
-p :在commit时,将容器暂停。
修改容器内容
先通过基础镜像,启动一个容器后
[root@VM_0_2_centos ~]# docker images
django_yoyo latest 984e5b0a9896 7 weeks ago 1.2GB
[root@VM_0_2_centos ~]# docker run -d -p 8004:8000 --name web_yoyo1 django_yoyo
874813d5c13fa002f6c5886a6b4c2cbc7d96639a3c8ef4de9154d4352b61b70b
docker exec 进入到容器
docker exec -it web_yoyo1 /bin/bash
可以查看容器内部的文件
root@874813d5c13f:/code# ls
1 Dockerfile LICENSE __pycache__ djoflower.out 2 images manage.py requirements.txt suite uwsgi.ini
ApiManager HttpRunnerManager README.md celerybeat.pid hrun_case.zip logs reports static templates
root@874813d5c13f:/code#
我想通过vi 去编辑文件
root@874813d5c13f:/code# vi requirements.txt
bash: vi: command not found
发现没有vi 命令 ,出现bash: vi: command not found
使用apt-get工具下载vim命令行工具
apt-get update
apt-get -y install vim
等下载完成后,就有vi命令编辑了
最后exit退出容器,回到宿主机上
容器创建新镜像
前面在容器里面做了一些修改,安装了vim 命令行工具,接着我们基于前面的容器构建一个新的镜像
使用docker commit 创建新的镜像,先查看容器id
[root@VM_0_2_centos ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
874813d5c13f django_yoyo "python..." 38 minutes ago Up 38 minutes 0.0.0.0:8004->8000/tcp web_yoyo1
通过容器的 CONTAINER ID 值874813d5c13f 或者NAMES名称 web_yoyo1来创建新镜像
[root@VM_0_2_centos ~]# docker commit web_yoyo1 new_web:v1.0
sha256:ee5f78f470f9c715b0df77eead2dececad6d998b615138f69acfc28f8e95cd03
也可以带上-a和-m参数添加镜像提交信息
[root@VM_0_2_centos ~]# docker commit -a "author_yoyo" -m "add vim" web_yoyo1 new_web:v1.1
sha256:078d76416146e0901a948cb8ca9ec3c79425360767caa03602c6810d54e4f25b
最后docker images 查看刚才构建的本地镜像
[root@VM_0_2_centos ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
new_web v1.0 ee5f78f470f9 About a minute ago 1.24GB
new_web v1.1 078d76416146 22 minutes ago 1.24GB
django_yoyo latest 984e5b0a9896 7 weeks ago 1.2GB
这样我们的新镜像就构建成功了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-12-04 关于面试总结1-SQL学生表
2016-12-04 Selenium2+python自动化23-富文本(自动发帖)