Hy我在debian之上为docker构建了一个小图像:jessie图像构成了Docer Hub。 首先我得到了debian:来自Docker Hub的jessie:
docker pull debian:jessie
然后我用bash来启动这个图像:
docker run -it debian:jessie
然后我安装了我的东西,例如ssh服务器并配置它。 接下来是第二个shell,我提交了更改:
docker commit <running container id> debian-sshd
现在我有两张图片:
debian:jessie和debian-sshd
如果我现在要删除debian:jessie,docker告诉我我不能删除它,因为它有子图像(debian-sshd)
有没有办法让debian-sshd成为一个独立的形象?
答案 0 :(得分:1)
大多数Dockerfiles都是从父图像开始的。如果你需要完全 控制图像的内容,您可能需要创建一个基础 相反的形象。这是区别:
父图像是图像所基于的图像。它引用Dockerfile中FROM指令的内容。每 Dockerfile中的后续声明会修改此父图像。 大多数Dockerfiles都是从父图像开始,而不是从基本图像开始。 但是,这些术语有时可以互换使用。
基本映像在其Dockerfile中没有FROM行,或者具有FROM scratch。
引用docs后,我会说图片由图层组成,并且由于您的图片基于debian:jessie
,因此debian-sshd
的其中一层是debian :杰西形象。如果您想要独立的图像,请从头开始构建。
除此之外,所有docker镜像都是开源的,因此您可以浏览dockerfile并根据需要进行修改。此外,如果你想要自己的基本图像,你可以从头开始构建。