当您-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
我有什么方法可以避免每次都传递卷绑定选项吗?
答案 0 :(得分:3)
根据定义,卷不是容器图层的一部分,因此不会是从容器创建图像时提交的图层的一部分。
如果您愿意,例如添加你特定的配置,添加一些扩展,添加一些包,你应该总是从基础图像派生,永远不只是"提交"任意的,不是正式的变化。
使用
创建Dockerfilefrom <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; - 这是有风险的,不会每次产生相同的结果,也不会产生相同的结果,也不会形成你实际改变的内容。你会遇到困难的时候。例如由于基础图像的更新而更新你的图像,因为你不知道,你做了什么 - 即使你已经写下来了,它还需要做很多努力,再次和再次。