在 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 修改容器内容后更新镜像的流程的更多相关文章

  1. Docker修改容器中的时间

    Docker修改容器中的时间 前言 在公司开发时使用 Docker 创建数据库(SQL Server)的实例十分方便,还原数据库也只要设置好共享文件夹,在 SQL Server Management ...

  2. docker 修改容器env配置

    docker 修改容器env配置 场景:修改zabbix数据库密码 zabbix容器构成: 数据库:zabbix-mysql server端:zabbix-server-mysql web端:zabb ...

  3. docker 修改容器配置文件

    启动docker镜像命令docker run 可以指定端口映射,但是容器一旦创建就无法在通过命令修改.通常是保存镜像在创建一个新的容器.有没有办法不保存镜像直接修改这个容器呢?答案是有的,本文已mys ...

  4. 【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 ...

  5. .NETCore Docker实现容器化与私有镜像仓库管理

    一.Docker介绍 Docker是用Go语言编写基于Linux操作系统的一些特性开发的,其提供了操作系统级别的抽象,是一种容器管理技术,它隔离了应用程序对基础架构(操作系统等)的依赖.相较于虚拟机而 ...

  6. docker修改容器gogs时区时间

    问题描述: 公司内部搭建了一个gogs-git,是用docker部署的,但是发现提交的代码什么的时间跟服务器时间不一致 提交上去的世界是UTC时间不是中国的时间CST,相当于慢了8个小时 1.dock ...

  7. Docker 修改容器内的时区

    利用docker发布服务,发现 程序用获取的系统时间比正常时间晚了8个小时 进入容器 docker exec -it /bin/sh 查询时间 date -R 发现时区为0时区 解决思路 1.复制相应 ...

  8. Docker 修改容器中的mysql密码

    1.查看容器服务 docker ps2.进入mysql容器 docker exec -it mysql /bin/bash 注:mysql为容器的名字 3.登录MySQL mysql -u root ...

  9. Docker修改daemon.json后无法启动的问题

    本文的运行环境为Centos 7.3,Docker与Kubernetes的安装方式见kubeadm安装kubernetes V1.11.1 集群 最近在整理Docker和Kubernetes中的日志与 ...

  10. docker修改容器参数

    docker update -m 500m --memory-swap - f669487f0804

随机推荐

  1. Swift开发基础01-语法

    Hello World print("Hello World") 不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口一句代码尾部可以省略分号(;),多句代码写 ...

  2. Javascript克隆数据

    JS 复制数据 1 浅复制 具体方法 // 数组 Array.prototype.slice // 普通对象 Object.assign 思考 2 深复制 1) function deepClone( ...

  3. 算法题练习,Solo和koko分糖 ,整数拆分, Cookies 分饼干

    目录 1. Candy Solo和koko分糖 2. 整数拆分 3=1+1+1 3=1+2 3=3 3. Cookies 分饼干 1. Candy Solo和koko分糖 如果可以分给弟弟,必定满足全 ...

  4. [oeasy]教您玩转python - 0003 - 编写 py 文件

    ​ 编写 py 文件 回忆上次内容 次在解释器里玩耍 了解到字符串就是给一堆字符两边加引号 可以是单引号 也可以是双引号 这样游乐场就知道 这个不是一个名字 而是一个字符串 字符串可以用print函数 ...

  5. “Vanilla” 在计算机科学和技术领域中的专业翻译

    "Vanilla" 在计算机科学和技术领域中通常指的是某个系统或软件的"原始"或"基础"版本,即没有任何修改.扩展或定制的版本.它可以翻译为 ...

  6. 【转载】【技术杂谈】shell和terminal

    分享视频: [技术杂谈]shell和terminal

  7. 深度学习中使用TensorFlow或Pytorch框架时到底是应该使用CPU还是GPU来进行运算???

    本文实验环境为Python3.7, TensorFlow-gpu=1.14, CPU为i7-9700k,锁频4.9Ghz, GPU为2060super显卡 ====================== ...

  8. 【转载】 详解nohup /dev/null 2>&1 含义的使用

    原文地址: https://www.jb51.net/article/169837.htm ==================================== 这篇文章主要介绍了详解nohup ...

  9. WhaleStudio 2.6重磅发布!调度模块WhaleScheduler更新78项核心功能

    我们很高兴地宣布WhaleStudio 2.6版本的正式发布!新版本中包含了数据调度模块WhaleScheduler和数据集成模块WhaleTunnel的百余项核心功能更新,本文摘选了WhaleSch ...

  10. vue(element)中使用monaco实现代码高亮

    vue(element)中使用monaco实现代码高亮 使用的是vue语言,用element的组件,要做一个在线编辑代码,要求输入代码内容,可以进行高亮展示,可以切换各不同语言,而且支持关键字补全,还 ...