Docker瘦身记

自从升级mac OSX 到Sierra, 免费版的Lantern就闪退,无法使用了,想尝试着在Docker里运行,于是在Github上闲逛,寻找合适的Lantern Docker, Lantern的Docker尝试了好几个,也自己动手制作了几个,但有一个共同的毛病,太大,我做的一个基于min-jessie版本的,也超过230M,今天碰巧发现了一个,竟然只有26.62M

screen-shot-2016-10-10-at-7-49-49-am

Dockerfile内容非常简单,仅仅依赖busybox:glibc

FROM busybox:glibc

#COPY ./lantern_linux_amd64 /lantern_linux_amd64
COPY ./lantern_linux_amd64.xz /lantern_linux_amd64.xz
RUN xz -d /lantern_linux_amd64.xz

COPY ./lib /lib
COPY ./tmp /tmp

EXPOSE 8787

CMD ["/lantern_linux_amd64", "-addr", "0.0.0.0:8787"]

26.62M的Docker,解压缩后的lantern_linux_amd64自己占了17M,查了下,依赖库只有4个,这让我对这种Docker的生成方式产生了浓厚的兴趣,于是网上寻找Docker瘦身的方法,没有想到竟然找到了,Squashing Docker Images

>ldd lantern_linux_amd64 
	linux-vdso.so.1 (0x00007fff42b4e000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f95b465d000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f95b42b2000)
	/lib64/ld-linux-x86-64.so.2 (0x0000562c6cb13000)

screen-shot-2016-10-10-at-8-03-19-am

 

 

未完,待续!

 

references,

Smaller Docker containers for Go apps