Docker音量绑定:基本图像与衍生图像

时间:2016-09-04 06:11:03

标签: docker

当您-v基本图像不会保留在您提交的派生图像中时,使用任何卷绑定run),以及卷绑定每次run派生图像时都必须传递选项。

示例:

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

在容器中进行更改(命名为: john_doe )并提交新图像( local / test

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

我有什么方法可以避免每次都传递卷绑定选项吗?

1 个答案:

答案 0 :(得分:3)

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

如果您愿意,例如添加你特定的配置,添加一些扩展,添加一些包,你应该总是从基础图像派生,永远不只是"提交"任意的,不是正式的变化。

使用

创建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

提示:我自己不喜欢&#34;将容器更改为图像的想法&#34; - 这是有风险的,不会每次产生相同的结果,也不会产生相同的结果,也不会形成你实际改变的内容。你会遇到困难的时候。例如由于基础图像的更新而更新你的图像,因为你不知道,你做了什么 - 即使你已经写下来了,它还需要做很多努力,再次和再次。