2017-04-18 22 views
1

Ubuntu的:16.04圖像有117 MB:自定義碼頭工人形象有巨大的規模增長

$ docker images 

ubuntu 16.04 6a2f32de169d 5 days ago 117 MB 

有了這個Dockerfile我想添加一些包(蟒蛇,建立必需品和捲曲)和流星:

FROM ubuntu:16.04 
RUN apt-get update -y && apt-get upgrade -y 
RUN apt-get install python -y 
RUN apt-get install build-essential -y 
RUN apt-get install curl -y 
RUN cd ~ && curl https://install.meteor.com/ | sh 

建設的新形象後...

docker build -t custom-ubuntu . 

...我看到它有更多的則1 GB。我不明白,這巨大的數量...

第二次嘗試

使用這種Dockerfile ...

FROM ubuntu:16.04 
RUN apt-get update -y 
RUN apt-get install nodejs-legacy -yqq 
RUN apt-get install curl -yqq 
RUN apt-get clean && apt-get autoclean && apt-get autoremove 
RUN curl https://install.meteor.com/ | sh 

...始於1.2 GB,並至少850結果MB。

這是輸出的開始,所以apt-get更新應該只添加24MB ...

Sending build context to Docker daemon 1.202 GB 
Step 1/6 : FROM ubuntu:16.04 
---> 6a2f32de169d 
Step 2/6 : RUN apt-get update -y 
---> Running in 4c4cec841f5d 
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB] 
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB] 
Get:3 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB] 
Get:4 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB] 
Get:5 http://archive.ubuntu.com/ubuntu xenial/universe Sources [9802 kB] 
Get:6 http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1558 kB] 
Get:7 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [14.1 kB] 
Get:8 http://archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [9827 kB] 
Get:9 http://archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [176 kB] 
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/universe Sources [187 kB] 
Get:11 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [30.0 kB] 
Get:12 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [652 kB] 
Get:13 http://archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [13.2 kB] 
Get:14 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [577 kB] 
Get:15 http://archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [9809 B] 
Get:16 http://archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [4929 B] 
Get:17 http://archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [2567 B] 
Get:18 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [308 kB] 
Get:19 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 Packages [12.8 kB] 
Get:20 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [133 kB] 
Get:21 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 Packages [2936 B] 
Fetched 23.9 MB in 7s (3184 kB/s) 
Reading package lists... 

回答

1

你正在做RUN apt-get update -y && apt-get upgrade -y。這是將整個系統升級到所有已安裝軟件包的最新版本。我認爲你只需要做apt-get update然後安裝所需的軟件包。爲什麼要升級整個系統?在容器中,如果你想要的是正在工作,或者如果你知道你在該版本上使用的任何包上存在某種漏洞,那麼建議更新它。無論如何,蟒蛇有很多依賴你知道,如果你安裝它的大小增加。

另一種很好的做法,以減少容器的大小是把它添加到Dockerfile(所有其他apt-get的陳述後):

RUN apt-get clean && apt-get autoclean && apt-get autoremove 

與你正在清理並刪除所有下載的.deb這些的apt-get命令包文件。

做到這一點,並檢查所有這些建議後的大小。祝你好運。

+0

第二次嘗試更新了帖子 – user3142695

+0

它說'發送構建上下文到Docker守護進程1.202 GB'。你在那個文件夾上有什麼? Dockerfile的文件夾應該是空的,或者只包含容器構建所需的東西 – OscarAkaElvis

相關問題