像卷那样添加绑定到Dockerfile

我想添加绑定到Docker文件,就像我初始化Dockefile内的一个卷。 有什么办法吗?

Dockerfile定义了如何构build图像,而不是如何使用 – 所以你不能在Dockerfile中指定绑定装入。 尝试使用docker-compose代替。 一个简单docker-compose.yml会为你安装一个目录,如下所示:

 version: '3.1' services: mycontainer: image: myimage build: . volumes: - './path/on/docker/host:/path/inside/container' 

build: . 如果您是通过其他方式构build图像,则是可选的,但有时在一个方面完成这一切很方便。

docker-compose up -d运行这个docker-compose up -d

简单的答案是否定的。

docker图像的基本devise原则是可移植性。 由于挂载文件夹是在主机上定义的,所以绑定挂载是特定于主机的。 因此这与Docker镜像的可移植性要求相矛盾。

除了其他答案之外,还有:

由于绑定挂载提供对主机文件系统的访问,允许将它们embedded到映像中将是一个巨大的安全风险。 考虑一个图像,声称是一个Web服务器,但事实上绑定挂载你的/etc/passwd/etc/shadow ,然后将它们发送到远程服务器。

或者绑定挂载/lib/ld-linux.so然后覆盖它,从而打破整个系统。

由于这些原因,你不能在Dockerfile中embedded一个bind mount。 同样,您不能在Dockerfile中指定主机端口映射,主机设备访问或任何其他类似的属性。