首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Docker commit不会保存我的容器的更改状态

Docker commit是Docker提供的一个命令,用于将容器的更改状态保存为一个新的镜像。但是需要注意的是,Docker commit并不会保存容器的运行状态,它只会保存容器的文件系统和设置。

具体来说,Docker commit会创建一个新的镜像,并将容器的文件系统中的更改保存到该镜像中。这样,我们可以通过该镜像创建新的容器,并且该容器会包含之前保存的更改状态。

然而,Docker commit并不是一个推荐的方式来管理容器的更改状态。因为它会导致镜像的版本管理变得复杂,难以追踪和管理。相反,推荐的做法是使用Dockerfile来定义容器的构建过程,通过构建新的镜像来保存容器的更改状态。

在Docker中,我们可以使用Dockerfile来描述容器的构建过程,包括基础镜像的选择、软件包的安装、文件的复制等操作。通过使用Dockerfile,我们可以轻松地重现容器的构建过程,并且可以将构建过程纳入版本控制系统进行管理。

对于Docker commit不会保存容器的更改状态,我们可以考虑使用Dockerfile来管理容器的更改状态。通过在Dockerfile中定义容器的构建过程,我们可以确保容器的更改状态得到有效地保存和管理。

腾讯云提供了一系列与Docker相关的产品和服务,包括腾讯云容器服务(Tencent Kubernetes Engine,TKE)、腾讯云容器镜像服务(Tencent Container Registry,TCR)等。这些产品和服务可以帮助用户更好地管理和运行容器,提高应用的可靠性和可扩展性。

更多关于腾讯云容器服务的信息,请访问:https://cloud.tencent.com/product/tke

更多关于腾讯云容器镜像服务的信息,请访问:https://cloud.tencent.com/product/tcr

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

docker容器commit镜像减少冗余层

docker容器commit镜像减少冗余层 使用docker经常会遇到这样问题,基础镜像几百兆,在容器中安装了几个软件,然后commit到镜像。后来删除了一些内容,再次commit成镜像。发现。...根本不会变小,而且会越来越大。 其实,commit,顾名思义,就是把当次修改提交。体现在docker镜像中,就是新一层。...手里这个环境并没有原始Dockerfile,并不知道从第一版到现在做了什么。所以干脆从零开始,把当前容器直接做成基础镜像。...退出容器,拷贝压缩包 exit docker cp [容器id]:/base_img.tar ....导入容器 # 导入 cat base_img.tar|docker import - base_img 对比: # 直观上体积减少了 docker images # history,只有一个记录:Imported

1.2K30

docker学习系列2 保存容器修改

由于容器本身是无状态修改完配置文件,关闭docker,下次在启动后还是原样,需要保存修改。...然后 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] 如 docker commit cb439fb2c714 finley/phpenv:tp3.2...commit 会基于对container修改创建一个新镜像 具体用法请参见官方文档:commit 注意: 经查,不推荐更改运行中容器配置,容器本身是无状态,当然也可以通过进入容器内部方式进行更改...: docker exec -it 这样更改是无法持久化保存,当容器重启后,更改就丢失了,正确做法是将需要持久化保存数据放在挂载存储卷中,当配置需要改变时直接删除重建。...回顾: # 从别人那拉个镜像 docker pull eriksencosta/php-dev # 基于上面的镜像加入了自己修改并提交为自己镜像,还打了tag docker commit cb439fb2c714

5.5K10

将正在运行容器保存为本地 Docker 镜像

9-1 上一章我们是通过复制宿主机器文件到容器中,更改容器,那么除了复制文件进容器以外,还有另一种方法,便是直接与容器进行交互,在容器内执行命令。这种技术也建议少用,道理同上一章一样。...注意:要执行docker exec命令必须保证容器是运行状态,如果容器没有启动,请执行docker start。...然后我们在容器中执行以下命令: apt-get update apt-get install vim 请注意:这一步你可能因为网络问题,导致你无法正常安装 VIM 工具,你可以跳过这一步,不会影响到你后面内容学习...important; } 然后保存修改后文件,刷新浏览器就可以看到修改后结果。 ? 9-1 文字已经被我们修改为了黄绿色了。...将修改后容器创建为镜像 输入以下命令 docker commit exampleApp4000 ltm0203/exampleapp:changed 这个命令会创建一个新ltm0203/exampleapp

4.6K00

Docker守护进程停机期间保持容器运行(即重启Docker时,正在运行容器不会停止)

前言: 在默认情况下,当 Docker 守护进程终止时,它将关闭正在运行容器。不过,我们可以配置该守护进程,以便在该守护进程不可用时容器仍在运行。这种功能称为实时恢复。...实时还原选项有助于减少由于守护进程崩溃、计划中断或升级而导致容器停机时间。...$(pidof dockerd) 3.检查上面的配置是否成功 docker info | grep -i live 4.重启Docker,此时重启Docker时就容器不会停止了 systemctl...restart docker 实例: 1.查看当前Docker容器运行状态 [root@localhost ~]# docker ps CONTAINER ID IMAGE...后,上面在运行两个容器运行时间分别为1小时、32分钟,容器并没有在我们重启Docker时停止,而是一直保持运行状态

3.5K20

深入理解Docker导入导出

它们区别, 有一篇被引用了很多次文章虽然讲很详细, 还加入了一些实验验证, 但是试验中为了实现同一个效果而使用了 commit 命令更改了镜像内容....这个时候就需要引入一个新参数 commit, 用来保存容器现有的状态为一个新镜像 比如在 A 机器上运行容器是基于 甲方乙方 这个镜像跑起来, 那么就可以通过 commit 参数, 将...甲 容器所有内容保存为一个新镜像, 名字叫 私人订制 (内含一梗哦) 最后再通过镜像导出工具 save 就可以完整将 私人订制镜像(也就是 甲容器 )导出为一个 tar 包了 而且包含了 X+1...层镜像, X 层是原镜像 甲方乙方 所有镜像层数, 1是容器 甲 多那一层可写层镜像 总结 总结来说也希望大家使用 docker 能遵循 docker 设计初衷, 运行一个无状态容器....如果是无状态容器, 就不会产生 想导出容器, 但是还想保留层次结构怎么办? 这样奇葩问题了.

73210

关于docker容器启动后修改或添加端口

docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。 通常间接办法是,保存镜像,再创建一个新容器,在创建时指定新端口映射。...方法二:利用docker commit新构镜像 docker commit:把一个容器文件改动和配置信息commit到一个新镜像。...这个在测试时候会非常有用,把容器所有的文件改动和配置信息导入成一个新docker镜像,然后用这个新镜像重起一个容器,这对之前容器不会有任何影响。...1、停止docker容器 docker stop container01 2、commitdocker容器 docker commit container01 new_image:tag 3、用前一步新生成镜像重新起一个容器...由于此次实验目的宿主机8080端口映射docker指定容器80端口 并且config.v2.json原文件已经带有80端口就不用做新更改了 如果添加新其他映射端口,此文件需要进行填写容器映射端口

25.6K61

关于docker容器启动后修改或添加端口

docker start运行容器后,并没有提供一个-p选项或设置,让你修改指定端口映射规则。 通常间接办法是,保存镜像,再创建一个新容器,在创建时指定新端口映射。...方法二:利用docker commit新构镜像 docker commit:把一个容器文件改动和配置信息commit到一个新镜像。...这个在测试时候会非常有用,把容器所有的文件改动和配置信息导入成一个新docker镜像,然后用这个新镜像重起一个容器,这对之前容器不会有任何影响。...1、停止docker容器 docker stop container01 2、commitdocker容器 docker commit container01 new_image:tag 3、用前一步新生成镜像重新起一个容器....json原文件已经带有80端口就不用做新更改了 如果添加新其他映射端口,此文件需要进行填写容器映射端口, 举例: "ExposedPorts":{"80/tcp":{},"3306/tcp"

4.3K10

docker容器运行原理以及创建过程

保存容器如果对容器进行了更改,需要将其保存为新镜像。这可以通过Docker commit命令完成。...docker commit my-ubuntu my-ubuntu-image这将创建一个名为my-ubuntu-image新镜像,其中包含在my-ubuntu容器中所做所有更改。...每个容器都有自己进程空间、网络空间、文件系统空间和用户空间,这使得容器应用程序可以运行在一个隔离环境中,而不会与主机系统或其他容器应用程序发生冲突。...每个容器都有自己进程空间、网络空间、文件系统空间和用户空间,这使得容器应用程序可以运行在一个隔离环境中,而不会与主机系统或其他容器应用程序发生冲突。在容器中运行指定命令或脚本。...可以使用Docker exec命令向容器发送命令或脚本。如果对容器进行了更改,可以使用Docker commit命令将其保存为新镜像。

81420

通过docker镜像,生成dockerfile文件-方法一

Docker容器名称,image_name是Docker镜像名称,tag是镜像标签。...完成这些操作后,可以通过以下命令退出容器:exit保存Docker容器更改容器中进行操作将不会自动保存Docker镜像中,需要通过以下命令保存更改docker commit container_name...生成Dockerfile文件保存Docker容器更改后,可以通过以下命令生成Dockerfile文件:docker export container_name | docker import - new_image_name...Flask框架:pip install Flask保存Docker容器更改容器中安装Flask框架后,我们需要保存容器更改。...命令如下:docker commit python_container python-flask:latest生成Dockerfile文件保存Docker容器更改后,我们可以使用以下命令生成Dockerfile

3.7K20

Docker学习笔记之保存和共享镜像

0x01 提交容器更改 之前我们已经介绍过了,Docker 镜像本质是多个基于 UnionFS 镜像层依次挂载结果,而容器文件系统则是在以只读方式挂载镜像后增加一个可读可写沙盒环境。...基于这样结构,Docker 中为我们提供了将容器这个可读可写沙盒环境持久化为一个镜像层方法。更浅显说,就是我们能够很轻松Docker 里将容器修改记录下来,保存为一个新镜像。...将容器修改内容保存为镜像命令是 docker commit,由于镜像结构很像代码仓库里修改记录,而记录容器修改过程又像是在提交代码,所以这里我们更形象称之为提交容器更改。...执行将容器内沙盒文件系统记录成镜像层时候,会先暂停容器运行,以保证容器文件系统处于一个相对稳定状态,确保数据一致性。...像通过 Git 等代码仓库软件提交代码一样,我们还能在提交容器更改时候给出一个提交信息,方便以后查询。

1.4K20

Docker 常用命令汇总

容器stop(或Ctrl+D)时,会在保存当前容器状态之后退出,下次start时保有上次关闭时更改。而且每次进入attach进去界面是一样,与第一次run启动或commit提交时刻相同。...官方文档中说attach后可以通过CTRL-C来detach,但实际上经过测试,如果container当前在运行bash,CTRL-C自然是当前行输入,没有退出;如果container当前正在前台运行进程...这不是我们想要,detach意思按理应该是脱离容器终端,但容器依然运行。好在attach是可以带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。...,会在container中安装一些工具、修改配置,如果不做commit保存起来,那么container停止以后再启动,这些更改就消失了。...$ sudo docker commit [repo:tag] 后面的repo:tag可选 只能提交正在运行container,即通过docker ps可以看见容器 推送一个

42020

容器中部署mysql与数据持久化

root@0950cf64b8e6:/# docker commit 0950 webmysql 以上设置完成后,我们在宿主机上安装mysql客户端,就可以通过宿主机IP进行mysql数据库使用了...02 mysql数据持久化 对于容器数据库来说,一旦容器停止,容器数据就会消失,不利于数据存储,虽然我们可以通过定时commit方法来保存容器数据,但我们有更好实现方法。...在宿主机查看/var/mysql/data/文件夹下,发现已经将/var/lib/mysql/文件夹内容同步,使用stop关闭容器后,文件夹数据不会消失。再次启动容器mysql后,数据库内容仍然存在。...以下是与web部署强相关主题: 1、通过commit,我们能够保存容器更改存储在宿主机,但当宿主机出现问题时,就需要进行使用镜像恢复。这涉及到如何备份与恢复images镜像。...://blog.csdn.net/mungo/article/details/51472130 3、mysql,https://hub.docker.com/_/mysql/ 4、查看 SELinux状态及关闭

1.9K90

Docker操作实践(3):Docker操作详解

commit容器保存为一个新镜像 Docker create 从镜像创建一个容器,该容器状态为stop Docker run 从镜像创建一个容器并将该容器启动 Docker diff 检查自镜像运行之后...,容器里文件结构更改 容器与tar文件相关操作命令: Docker export 将容器导出为一个tar文件 容器自身其他操作命令: Docker inspect 获取容器/镜像元数据 Docker...与镜像相关命令 容器与镜像相关操作命令: Docker commit容器保存为一个新镜像 Docker create 从镜像创建一个容器,该容器状态为stop Docker run 从镜像创建一个容器并将该容器启动...Docker diff 检查自镜像运行之后,容器里文件结构更改 镜像与tar files相关命令: Docker import 将tar文件load为镜像,会丢失相关元数据和历史记录 Docker...使用docker run -m 2000m可启动一个内存占用2000MB容器,但该容器中未进行什么进程时,该容器不会直接占用主机2000MB内存。

77630

Docker命令之容器命令

所以,最佳解决方案是,将你要运行程序以前台进程形式运行,常见就是命令行模式,表示还有交互操作,不要停止掉容器。...Docker内部应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。docker kill,发送SIGKILL信号,应用程序直接退出。...docker attach 该命令可以进入在后台运行容器中,和exec不同地方是,attach直接进入容器启动命令终端,不会打开一个新终端,这样你退出时候,就会导致容器退出。...命令格式如下: docker export docker export是用来将container文件系统进行打包容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时快照状态),而镜像存储文件将保存完整记录...命令格式如下: sudo docker commit -m="描述信息" -a="作者" 容器ID 要创建镜像名:[标签名] 例如: sudo docker commit -m="new_ubuntu

1.2K20

Docker命令之容器命令1

所以,最佳解决方案是,将你要运行程序以前台进程形式运行,常见就是命令行模式,表示还有交互操作,不要停止掉容器。...Docker内部应用程序可以接收SIGTERM信号,然后做一些“退出前工作”,比如保存状态、处理当前请求等。docker kill,发送SIGKILL信号,应用程序直接退出。...docker attach该命令可以进入在后台运行容器中,和exec不同地方是,attach直接进入容器启动命令终端,不会打开一个新终端,这样你退出时候,就会导致容器退出。...命令格式如下:docker exportdocker export是用来将container文件系统进行打包容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时快照状态),而镜像存储文件将保存完整记录...命令格式如下:sudo docker commit -m="描述信息" -a="作者" 容器ID 要创建镜像名:[标签名]例如:sudo docker commit -m="new_ubuntu" -

87130

Docker知识扫盲

Docker registry:Docker 镜像仓库,用于保存镜像,并提供镜像上传和下载 Docker容器状态机 一个容器在某个时刻可能处于以下几种状态之一: created:已经被创建 (使用...exited:上图中 stopped 状态,表示容器之前运行过但是现在处于停止状态(要区别于 created 状态,它是指一个新创出尚未运行过容器)。...可以通过 start 命令使其重新进入 running 状态 destroyed:容器被删除了,再也不存在了 Dokcer命令 把Docker命令大概分类。...docker rm $(docker ps -aq) #保存容器,生成镜像 docker commit 容器ID 镜像名称 #从 host 拷贝文件到 container 里面 docker cp...docker配置 更改存储目录: #复制docker存储目录 rsync -aXS /var/lib/docker/.

28510
领券