在 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. 测试人必会 K8S 操作之 Dashboard

    在云计算和微服务架构的时代,Kubernetes (K8S) 已成为管理容器化应用的标准.然而,对于许多新手来说,K8S 的操作和管理常常显得复杂而神秘.特别是,当你第一次接触 K8S Dashboa ...

  2. oeasy 教您玩转linux 010303文件管理器 nautilus

    我们来回顾一下 上一部分我们都讲了什么? 讲了火狐 火狐的位置 用命令行打开多个网址 火狐的升级 火狐桌面建立快捷方式 我们可以知道桌面快捷方式文件的名称么? 从文件管理器到命令行 按住文件 拖动到t ...

  3. AT_arc111_a 题解

    洛谷连接&Atcoder 链接 题目简述 给定两个数 \(n\) 和 \(m\),输出 \(\left\lfloor\frac{10^n}{m}\right\rfloor \bmod m\) ...

  4. java集合解析

    1,java集合体系 2,Colletion集合 子接口有List和Set (1)List接口:ArrayList,Vector,LinkedList list是collection接口的子接口,特点 ...

  5. 商业级java开发单体项目环境搭建

    写在开发前,端口经常被战占,windows10用以下命令先查先杀,netstat -aon | findstr "8080" taskkill /F /PID <PID> ...

  6. 使用ollama本地部署gemma记录

    1.官网https://ollama.com/安装ollama 2.先配置一下环境变量 不然下载的东西会默认丢在C盘里 3.cmd执行ollama run gemma:2b (使用后推荐直接下7b,2 ...

  7. 如何让SQL Server像MySQL一样拥有慢查询日志(Slow Query Log慢日志)

    如何让SQL Server像MySQL一样拥有慢查询日志(Slow Query Log慢日志) SQL Server一直以来被人诟病的一个问题是缺少了像MySQL的慢日志功能,程序员和运维无法知道数据 ...

  8. SEO初学指南之关键词研究(3) - 关键词分析实战

    经过之前的学习,这次我们开始实战.手把手教大家如何为网站筛选符合条件的关键词. 还不熟练的,建议再反复学习前两篇文章: SEO初学指南之关键词研究 (1) - 入门 SEO初学指南之关键词研究 (2) ...

  9. 使用MySQL实现分布式锁

    分布式锁开发中经常使用,在项目多节点部署或者微服务项目中,JAVA提供的线程锁已经不能满足安全的需求,需要使用全局的分布式锁来保证安全:分布式锁的实现的方式有很多种,最常见的有zookeeper,Re ...

  10. 【Vue】Re02 指令:第一部分

    一.v-once指令 用于固定一次性赋值,后续Vue实例的赋值更改将不再对v-once指令的元素有效 <!DOCTYPE html> <html lang="en" ...