Ubuntu 14.04的docker镜像尺寸更大,并且有lsb_release
命令。
$ docker run -it ubuntu:14.04
root@c0384d45aba3:/# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty
root@c0384d45aba3:/# exit
exit
$ docker images ubuntu:14.04
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 14.04 7c09e61e9035 6 weeks ago 188 MB
Ubuntu 16.04的泊坞窗图片尺寸较小,没有
lsb_release
命令。
$ docker run -it ubuntu:16.04
root@853f2dd91c36:/# lsb_release -a
bash: lsb_release: command not found
root@853f2dd91c36:/# exit
exit
$ docker images ubuntu:16.04
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 0ef2e08ed3fa 6 weeks ago 130 MB
从他们的Dockerfiles开始,我怎样才能找到造成这种差异的原因?
答案 0 :(得分:3)
以下是两张图片的Dockerfiles。
以下是这两个文件之间的唯一区别。
-ADD ubuntu-trusty-core-cloudimg-amd64-root.tar.gz /
+ADD ubuntu-xenial-core-cloudimg-amd64-root.tar.gz /
现在我们从
下载两个.tar.gz文件实际上lsb_release包含在可靠但不包含在xenial中。
$ tar -tf ubuntu-trusty-core-cloudimg-amd64-root.tar.gz | grep lsb_release$
usr/bin/lsb_release
$ tar -tf ubuntu-xenial-core-cloudimg-amd64-root.tar.gz | grep lsb_release$
$
然后我们将两个tarball的内容提取到目录中,我们可以确认trusty比xenial大。
$ mkdir trusty xenial
$ tar -xf ubuntu-trusty-core-cloudimg-amd64-root.tar.gz -C trusty
$ tar -xf ubuntu-xenial-core-cloudimg-amd64-root.tar.gz -C xenial
$ du -sh trusty xenial
208M trusty
141M xenial