docker 修改容器内容后更新镜像的流程
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改保存为一个新的镜像,可以按照以下步骤进行:
docker version: 26.1
1. 确保容器运行
首先,确保你正在修改的容器是运行中的。如果容器已经停止,你需要启动它:
docker start <container_id>
2. 进入容器并进行修改(如果尚未修改)
你可以使用 docker exec 命令进入运行中的容器并进行所需的修改。例如,进入容器并使用 shell:
docker exec -it <container_id> /bin/bash
在容器中完成所需的更改(如安装软件、修改配置文件等)。
3. 生成镜像
提交容器生成镜像
1. 提交镜像
完成修改后,你需要将这些更改提交为一个新的镜像。使用 docker commit 命令来完成这一操作:
docker commit <container_id> <new_image_name>:<tag>
<container_id>:你的容器的 ID 或名称。
<new_image_name>:你想为新镜像指定的名称。
:镜像的标签(可选,但推荐使用)。如果不指定,默认标签是 latest。
例如,提交容器 my_container 为名为 my_new_image 的新镜像,并标记为 v1.0:
docker commit my_container my_new_image:v1.0
2. 验证新镜像
你可以使用 docker images 命令来验证新镜像是否创建成功:
docker images
3. 使用新镜像
现在,你可以使用新的镜像来创建新的容器:
docker run -d <new_image_name>:<tag>
例如,使用之前创建的镜像 my_new_image:v1.0:
docker run -d my_new_image:v1.0
容器直接导出镜像
1 确定容器

如图所示,我们使用容器id为df8c的容器导出,对应的命令为:
docker export -o file_name.tar df8cae66ae57
其中,file_name 为自定义的名字。
2 验证镜像并使用
将镜像再次导入docker import file_name.tar image_name:tag
其中file_name为对应的名字,image_name为镜像的名字,tag对应版本信息。
docker run -itd --name=docker_name --gpus "device=0" --shm-size=16g -p 7112:7100 --restart=always --privileged -v /tmp:/tmp image_name:tag /bin/bash -c "bash"
其中,docker_name为对应的容器的名字,image_name为对应的镜像的名字,tag为版本信息。
总结
修改容器:可以进入容器并进行所需的修改。
提交为镜像:使用 docker commit 将修改提交为新的镜像。
验证和使用:检查新镜像并使用它来创建新容器。
docker 修改容器内容后更新镜像的流程的更多相关文章
- Docker修改容器中的时间
Docker修改容器中的时间 前言 在公司开发时使用 Docker 创建数据库(SQL Server)的实例十分方便,还原数据库也只要设置好共享文件夹,在 SQL Server Management ...
- docker 修改容器env配置
docker 修改容器env配置 场景:修改zabbix数据库密码 zabbix容器构成: 数据库:zabbix-mysql server端:zabbix-server-mysql web端:zabb ...
- docker 修改容器配置文件
启动docker镜像命令docker run 可以指定端口映射,但是容器一旦创建就无法在通过命令修改.通常是保存镜像在创建一个新的容器.有没有办法不保存镜像直接修改这个容器呢?答案是有的,本文已mys ...
- 【Docker】-NO.132.Docker.1 -【Docker 修改容器端口】
Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...
- .NETCore Docker实现容器化与私有镜像仓库管理
一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而 ...
- docker修改容器gogs时区时间
问题描述: 公司内部搭建了一个gogs-git,是用docker部署的,但是发现提交的代码什么的时间跟服务器时间不一致 提交上去的世界是UTC时间不是中国的时间CST,相当于慢了8个小时 1.dock ...
- Docker 修改容器内的时区
利用docker发布服务,发现 程序用获取的系统时间比正常时间晚了8个小时 进入容器 docker exec -it /bin/sh 查询时间 date -R 发现时区为0时区 解决思路 1.复制相应 ...
- Docker 修改容器中的mysql密码
1.查看容器服务 docker ps2.进入mysql容器 docker exec -it mysql /bin/bash 注:mysql为容器的名字 3.登录MySQL mysql -u root ...
- Docker修改daemon.json后无法启动的问题
本文的运行环境为Centos 7.3,Docker与Kubernetes的安装方式见kubeadm安装kubernetes V1.11.1 集群 最近在整理Docker和Kubernetes中的日志与 ...
- docker修改容器参数
docker update -m 500m --memory-swap - f669487f0804
随机推荐
- IDEA之调试或运行的小助手日志插件Grep Console:不同颜色区分,查看日志看方便【工欲善其事必先利其器】
简介 Grep Console是一款方便开发者对idea控制台输出日志进行个性化管理的插件.这个插件还是很用的,在满屏的日志中,迅速找到自己关注的内容,调试程序的绝佳工具. 功能特性 Grep Con ...
- jQuery中hide()和display的区别在于它们实现元素隐藏的方式不同。
1. hide()方法是jQuery提供的一个函数,用于隐藏元素.当使用hide()方法时,元素会被设置为display:none,即不显示在页面上,但仍然占据着原来的空间.隐藏后的元素可以通过调用s ...
- linux mysql 允许进行远程连接 比如 navicat
出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.所以开启远程访问权限.登录mysqlmysql -uroot -pxxxxxx 1:GRANT ALL PRIVI ...
- 如何在 Vue 和 JavaScript 中截取视频任意帧图片
如何在 Vue 和 JavaScript 中截取视频任意帧图片 大家好!今天我们来聊聊如何在 Vue 和 JavaScript 中截取视频的任意一帧图片.这个功能在很多场景下都非常有用,比如视频编辑. ...
- Pandas库学习笔记(2)
Pandas 数据结构 Pandas 有三种常用的数据结构 Series DataFrame Panel 这些数据结构建立在Numpy数组之上,这意味着它们运行速度都非常快. Python.Numpy ...
- 测试工程师-bug的组成要素
bug的组成要素:所属产品.所属模块.版本.指派开发.bug标题.严重程度.优先级.bug类型.重现步骤.附件等: 1. 所属产品.所属模块.版本.指派开发 根据相应的项目正确填写 2.bug标题 简 ...
- 【设计模式 Design Pattern】【UML】建模语言
什么是UML图? UML-Unified Modeling Language 统一建模语言,又称标准建模语言. 是用来对软件密集系统进行可视化建模的一种语言. UML的定义包括UML语义和UML表示法 ...
- 神州笔记本(HASEE) win11 操作系统自动进入休眠状态,唤醒后自动关机 —— 神州笔记本总出现这种自动关机的问题怎么破解?
前几日在某东上购入神州笔记本(HASEE),用着本来还好,但是最近只要用到电源模式的问题,这个笔记本就是会无端进入到自动关机的状态. 前文中也讨论过类似的问题: 神州笔记本 win11 节能模式 供电 ...
- 一个简单的例子测试numpy和Jax的性能对比 (续)
相关: 一个简单的例子测试numpy和Jax的性能对比 numpy代码: import numpy as np import time x = np.random.random([10000, 100 ...
- ComfyUI插件:ComfyUI-BrushNet节点
前言: 学习ComfyUI是一场持久战,而ComfyUI-BrushNet是最近的局部重绘节点,其包含BrushNet和Powerpaint两个主要节点,其中BrushNet有SD1.5和SDXL两个 ...