首页 > 其他分享 >docker容器commit之后变得非常大的原因及解决办法

docker容器commit之后变得非常大的原因及解决办法

时间:2023-02-06 14:45:49浏览次数:70  
标签:解决办法 img tar 容器 -- commit 镜像 docker

一 ,原因:

原因就是直接在容器里进行了很多操作,比如apt update/install、pip install等等,而没有使用Dockerfile来构建镜像。docker镜像的构建方式是以层的概念来实现的,在容器内所做的所有操作都会在构建镜像时运行一遍,每一个操作所涉及到的内存空间, 都会成为镜像文件的一部分。
所以大家一般在容器里开发到一定阶段想要commit成镜像的时候,会发现生成的镜像会有几十G的体量,可怕。

二,解决办法:
1,比较简单的方法
先进入要打包的容器,执行以下命令对根目录下的文件打包:

tar -cvf img.tar --exclude=/proc --exclude=/sys --exclude=img.tar /
1

然后将打包好的文件拷贝到宿主机下随便一个目录下:

sudo docker cp 容器ID:/img.tar .
1

最后生成新的镜像:

cat img.tar | sudo docker import - img
1

通过docker images查看,可以看到有一个新生成的名为img的镜像,体量会小很多。

2,比较复杂的方法
编写Dockerfile制作镜像,但这对于不太熟悉docker以及shell编程的人来说比较困难

标签:解决办法,img,tar,容器,--,commit,镜像,docker
From: https://www.cnblogs.com/xiondun/p/17095341.html

相关文章

  • CentOS安装Docker
    让Docker每次开机自动运行。因为我们是开发环境,虚拟机用完就关机了,下次启动虚拟机,让Docker跟着启动对于我们开发来说更方便一些。这篇再整理一下在 CentOS 下安装Doc......
  • 云原生之使用docker部署Postgresql数据库
    (云原生之使用docker部署Postgresql数据库)一、Postgresql介绍1.PostgreSQL简介PostgreSQL是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。2.P......
  • 带小白入门docker
    带小白入门docker一、docker定义Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操......
  • docker 国内加速器
    1、配置镜像地址Docker客户端版本大于1.10.0的用户可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器{"registry-mirrors":["https://docker.mirror......
  • php没有文件被上传的实例分析及解决办法
    修改PHP.ini,设置上传文件的大小。在Httpd.conf中添加“php_valueupload_max_filesize"300M"”。重启服务器即可。使用ThinkPhp框架上传小图片文件成功,上传大文件失败......
  • docker网络
    一.docker网络概述Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同......
  • Docker
    Docker是什么?Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源。Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然......
  • "_OBJC_CLASS_$ [文件名1]referenced from in[文件名2]:ld: symbol(s) not found问题
    说实话开发一年多了,遇到了至少三次以上这种问题,很困惑,也很难搞觉得,其实很简单解决办法,在buildPhases中添加文件名1的.m文件即可了。"_OBJC_CLASS_$"PackageTourCustomAnnot......
  • Docker数据管理
    一、docker数据管理管理Docker容器中数据主要有两种方式:数据卷(DataVolumes)和数据卷容器(DataVolumesContainers)。1、数据卷数据卷是一个供容器使用的特殊目录,位于容器......
  • Docker容器资源扩容操作
    Docker容器资源扩容通过Docker部署的容器服务在运行了一段时间后,发现容器部署的服务资源不足,这时需要对容器服务的资源进行扩容;扩容命令操作dockerupdate[OPTIONS]CO......