新手刚入门,自己学着创建系统镜像和各种应用的镜像
我先自己制作了一个centos67的镜像,然后基于centos67装了vim,再docker commit 保存为centos67vim
然后再基于centos67vim上 编译安装了mysql5.6再commit保存为 mysql56,可是发现容量就达1.591GB了
我再docker pull mysql 发现为什么官方提供的只有360.3
多谢各位大大帮忙解答!!
PHP中文网2017-04-24 09:12:48
이미지를 만드는 과정에서 몇 가지 사항에 주의해야 합니다.
1. 파일 시스템은 UnionFs이며 Dockerfile의 각 RUN은 레이어를 생성합니다. 따라서 각 RUN 후에 생성된 데이터를 정리해야 합니다. 생성된 결과(3G 크기)는 각 레이어 크기의 선형 중첩이기 때문입니다.
2. 공식 이미지가 일반적으로 너무 작은 이유는 무엇인가요? mysql:5.6을 참조로 사용하여 분석해 보겠습니다.
RUN apt-get update && apt-get install -y perl --no-install-recommends && rm -rf /var/lib/apt/lists/*
빌드 업데이트 후 삭제 apt의 캐시된 패키지 파일. 일반적으로 이 폴더는 상황에 따라 약 100M 정도를 차지하게 됩니다.
RUN { ...&& apt-get update && apt-get install -y
mysql-server="${MYSQL_VERSION}" && rm -rf /var/lib/apt/lists/* && rm
-rf /var/lib/mysql && mkdir -p /var/lib/mysql db 설치 후 평소와 같이 캐시된 패키지 파일을 삭제합니다. /var/lib/mysql을 삭제하면 샘플 데이터베이스가 지워질 수 있습니다.
hub.docker.com에서 가장 일반적으로 사용되는 vim 패키지를 살펴보겠습니다. haron/vim 이미지는 300M이고 스크래치를 기본 이미지로 사용하는 것으로 나타났습니다.
hub.docker.com에서 대략적으로 검색한 결과 centos 기반의 mysql 이미지를 찾을 수 없었습니다. 개인적으로는 캐시된 패키지가 삭제되지 않아 문제가 발생한 것으로 추정합니다.
mysql 미러 분석
haron/vim 분석
Centos 기본 이미지 분석
Ubuntu 기반 이미지 분석
怪我咯2017-04-24 09:12:48
mysql 공식 이미지의 dockerfile을 확인하실 수 있습니다. 기본 이미지는 달라야 합니다. 일반적으로 많은 공식 기본 이미지는 매우 작습니다. 예를 들어 scratch
그런데 우분투 같은 걸 사용하면 180M 정도 됩니다. (정정해준 @
imdjh에게 감사드립니다) Centos에는 신경을 안 썼네요.
阿神2017-04-24 09:12:48
Dockerfile을 공개로 설정하면 모든 사람이 살펴보는 데 도움을 줄 수 있습니다. 가장 큰 문제는 Dockerfile 작성입니다