zoukankan      html  css  js  c++  java
  • Docker commit 命令保存的镜像文件太大的问题

    基础镜像: centos7.5

    进入容器后, 先后安装了 jdk1.8, maven3.6.0, git, rocketmq4.3.2

    安装完成后使用 docker commit 命令保存为镜像

    结果跑了半天以后终于保存下来一看竟然有 3.3G 的大小

    我勒个去

    去网上查了一番以后发现一个问题

    由于docker镜像的构建方式是以层的概念来实现的

    就是说我在容器内所做的所有操作都会在构建镜像时运行一遍

    所以每一个操作所涉及到的内存空间, 都会成为镜像文件的一部分

    比如我在容器内下载了rocketmq的源码, 并在里面编译安装完成

    随后我把源码删掉了, 可是实际上他已经被深深地刻在了镜像上

    投机取巧:

    将已经安装好各个软件的容器中的相关文件download到宿主机的/home/package目录下

    比如我这里的:

      /usr/local/jdk1.8

      /usr/local/maven3.6.0

      /usr/local/rocketmq4.3.2

    随后使用基础centos镜像打开一个新容器, 并把这些文件挂载到容器内:

    docker run -it -v /home/package:/usr/local --privileged=true <centos镜像id> /bin/bash

    进入容器后, 只需要修改 /root/.bashrc 文件, 设置一下环境变量

    然后 docker commit 此容器

    这样构建下来的镜像大小是 300+M (centos基础镜像为202M)

    算是一波大瘦身吧. 当然是用dockerfile应该会更小

    但是我现在还不会写, 再说吧!

  • 相关阅读:
    帆软报表实现全选全不选的功能
    knowledge_others
    skills_kafka
    skills_operation
    problems_others
    skills_windows
    c语言标识符
    快速排序法
    字符串处理scanf("%d%*c",&n);
    Byte.parseByte(String s,int radix)的解释
  • 原文地址:https://www.cnblogs.com/imyjy/p/10132774.html
Copyright © 2011-2022 走看看