Docker Image空間上的巧思

Docker Image空間上的巧思

Docker image在儲存時候也是以layer的方式儲存,因此在每個RUN都可以完整的保存中間的紀錄,但是往往也造成其他問題... 例如image空間非常巨大... From一個大的Image通常只會更大,小不下來...
例如:
From centos

RUN wget http://xxxx.xxxx/xxx.data #假設這裡有5G

RUN rm xxx.data #本來以為會把5G刪掉
在上面的build file中,通常image build起來還會是5G...
下面是網路上找到可以Flatten Image的方式,透過簡單的export/import就可以讓之間的空間巧妙的縮減下來唷:
docker export  | docker import - some-image-name:latest
如果要完整地把Image在建置時候就最小化,可以修改dockerfile:
From centos

RUN wget http://xxxx.xxxx/xxx.data &&\
    rm xxx.data
在一個RUN下面只會有一次的commit,就會有效的縮小image的空間唷~