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 确定容器

image
如图所示,我们使用容器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 将修改提交为新的镜像。
验证和使用:检查新镜像并使用它来创建新容器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/786493.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

REST framework:排序过滤器的使用

对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序 1、在setting中的REST_FRAMEWORK添加配置DEFAULT_FILTER_BACKENDS: (# 这个是指定使用django_filters中的过滤器来进行过滤django_filters.rest_framework.DjangoFilterBac…

AP5160 电压2.5-100V 电流12A PWM 调光 大功率LED驱动 手电筒与摩托车照明方案

产品描述 AP5160 是一款效率高,稳定可靠的 LED 灯恒流驱动控制芯片,内置高精度比较器,固定 关断时间控制电路,恒流驱动电路等,特别适合大功率 LED 恒流驱动。 AP5160采用SOT23-6封装,通过调节外置电流检测的电阻值来设置流过LED 灯的电流,从而设置LED灯的亮度,外驱 MOS…

解决方案 | VS2022 社区版 获取工具和功能找不到visual stdio安装程序的终极解决办法

首先这是一种解决方法: https://blog.csdn.net/Wysnbb/article/details/124588395其次,如果上面方法解决不了,那么可以重新下载vs 社区版。(不要误会,并不是下载10G+的东西) https://visualstudio.microsoft.com/zh-hans/vs/community/下载得到:安装VisualStudioSetup.e…

折腾 Quickwit,Rust 编写的分布式搜索引擎(专为从对象存储中实现亚秒级搜索而设计)

什么是 Quickwit? Quickwit 是首个能在云端存储上直接执行复杂的搜索与分析查询的引擎,并且具有亚秒级延迟。它借助 Rust 语言和分离计算与存储的架构设计,旨在实现资源高效利用、易于操作以及能够扩展到 PB 级数据量。 Quickwit 非常适合日志管理、分布式追踪以及通常为不可…

代码随想录day39 || 198 打家劫舍,213 打家劫舍||,337 打家劫舍|||

198 打家劫舍 func rob(nums []int) int {// 思路,动态规划// dp[i] 代表前下标为i能装的最大盗窃物品价值// 递推 dp[i] = max(dp[i-1], dp[i-2]+v(i)) // dp[i-1] 代表不偷物品i, dp[i-2]+v(i) 代表偷物品i,那么就不能偷i-1,因为题目要求不能相邻,所以考虑前i-2// dp[0]…

CF 做题笔记

在这个随笔中,会有笔者的一些 CodeForces 做题笔记,包括但不限于思想、解题技巧、代码实现等。CF1926G Vlad and Trouble at MIT \(\texttt{*1900}\)。TAG: \(\texttt{树形 dp}\) \(dp_{i,S,P}\) 为 \(i\) 的子树内是否存在 S 和 P 的状态。 转移方程为:当 \(s_i\) 为 C 时 …

VulNyx-Secrets

扫端口扫描80端口发现有个secrets目录 还有个注释继续扫发现http://192.168.200.11/secrets/login_form.php 有这个登录框 估计就是要爆破 username就是brad了把密码爆破出来 bradley登录完成后有跳转要我们写ip随便写个127.0.0.1 发现他只接受纯数字那我们就把ip转化成纯数字然…

(更新至 8/23) 不是暑假的暑假的不是游记的游记

假期持续更新 Day1 - 8/23 因为在学校里待不下去了,所以订的十一点多的火车,打算八点钟就出门 结果教练在家长群里发我们十二点放假,所以我爸怕我赶不上就帮忙改签到一点半了 你说的对,但是为什么改成卧铺了??? 因此因为xfg的莫名其妙原因,还是决定十点钟出来 那么十点…

C++11新特性(一):语言特性

C++11新特性 总结C++11特性时发现整个内容较多,建议查看前先查看目录。 语言特性 右值引用 右值的分类为将亡值和字面量。将亡值就是将要销毁的对象以及临时的变量,字面量就是常量。左值就是变量。 右值引用,通常使用&&表示。 // 字面量 int a = 1; // a变量,左值;…

电脑更新有什么好处和坏处,怎么更新电脑呢

电脑更新,特别是操作系统和软件的更新,带来了多方面的好处和坏处。下面分别讨论这些方面,并介绍如何进行电脑更新。 一、好处: 1.安全性增强:系统更新通常包含安全补丁,用于修复已知的安全漏洞,保护你的电脑免受恶意软件和黑客攻击。 2.性能改进:软件开发者会不断优化软…