在 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. Cush:从辞职自学编程到被 Apple、PriceTag推荐

    名字:Cush 开发者 / 团队:ShaSha 平台:iOS.macOS 请简要介绍下这款产品 也许你听过记账可以帮助省钱,但总是浅尝辄止? 快试试 Cush!它精简了记账中所有复杂繁琐的步骤,简单精 ...

  2. 微软账号密码修改后提示密码错误的解决方法(远程桌面&smb共享访问等)

    众所周知,自从微软将Microsoft账户与Windows账号强制绑定后,使用起来便一直有诸多困难,在Microsoft Support和搜索引擎长期搜索解决方案未果,今天偶然在一个佬的博客翻到了这个 ...

  3. CF709B 题解

    洛谷链接&CF 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 给定 \(N\) 个点,在一条数轴上,位置为 \(x_1,-,x_n\),你的位置为 \(p\) ...

  4. .Net Core MemoryCache 缓存

    缓存是一种开发时常用的性能优化手段,.Net自带内存缓存(MemoryCache)可以很方便的使用,下面列出简单用法. 首先通过NuGet添加 Microsoft.Extensions.Hosting ...

  5. JAVA Spring Boot快速开始

    实践环境 Spring Boot 3.2.1 Maven 3.8.8 JDK 1.8.0_331 创建项目 通过http://start.spring.io/网站创建包含Spring Boot的项目, ...

  6. Elasticjob执行job幂等

    ElasticJob的幂等机制,是指作业分片执行的幂等,他需要做到以下两点: 同一个分片在当前作业实例上不会被重复执行 一个作业分片不能同时在多个作业实例上执行 如何实现幂等 场景模拟:存在任务A执行 ...

  7. java8interface的新特性:default,static,funcation

    default:默认方法 在类接口中可以直接定义的方法,实现接口的类可以直接使用 使用案例: public interface MyInterface { default void display() ...

  8. 题解 CF741E Arpa’s abnormal DNA and Mehrdad’s deep interest

    CF741E Arpa's abnormal DNA and Mehrdad's deep interest 记 \(R_{i}\) 表示把 \(T\) 插入在 \(S\) 的第 \(i\) 位后组成 ...

  9. 对比python学julia(第四章:人工智能)--(第一节)OpenCV编程初步(3)

    1.4.  人脸检测 (续上) 3.检测视频中的人脸 在VSCode环境中,新建一个空白源文件,以detect_video.jl作为文件名保存到项目文件夹中,然后编写程序检测视频流中的人脸(正脸).由 ...

  10. 人形机器人(humanoid)的摔倒实验/撞击实验

    motivation: 人形机器人的实体比较昂贵,但是实验过程中机器人的摔倒和撞击时十分常见的事情,这就会导致机器人的元器件被损坏,造成较大的经济损失,为此我们在设计机器人的机械结构和电子元器件布局时 ...