Docker卷绑定:基础图像与派生图像

它看起来像run基础映像时使用的任何卷绑定-v )将不会保留在您提交的派生映像中,并且每次run派生映像时都必须传递卷绑定选项。

例:


 docker run -it -v /opt/hostappsdir:/apps ubuntu 

在容器(名为: john_doe )中进行更改,并提交到一个新的映像( 本地/testing

 docker commit john_doe local/test 

然后,这不会列出主目录/opt/hostappsdir

 docker run --rm local/test ls /apps 

但是这个是做的

 docker run --rm -v /opt/hostappsdir:/apps local/test ls /apps 

有没有什么办法可以避免每次都传递卷绑定选项?

根据定义,卷不是容器图层的一部分,因此不会成为从容器创build图像时提交的图层的一部分。

如果您想添加特定configuration,添加一些扩展,添加一些包,则应始终从基础映像派生,不要只是“提交”任意的,而不是正式的更改。

创build一个Dockerfile

 from <baseimage> COPY yourconfig /etc/somewhere COPY yourasset /var/www RUN sed ... \ // change some configuration && apt-get update && apt-get install curl // some packages 

提示:我自己不喜欢“将容器更改为图像”的想法 – 这是有风险的,每次都不会产生相同的结果,并且不会使您实际改变的forms正规化。 你会有困难的时候,例如更新你的形象,由于基础图像的更新,因为你不知道,你做了什么 – 即使你已经写下来,它是很多的努力再次做到这一点,再次。