在Dockerfile中将主机目录创建为数据卷

时间:2016-04-22 21:19:36

标签: docker

因此,当运行容器的命令时,我可以使用命令

创建我想要的主机卷装载
docker run -d -P --name web -v /home/ec2-user:/home/ec2-user testing123 

如何将/src/webapp:/opt/webapp主机目录转换为Dockerfile内的参数?我可以使用VOLUME创建此类存储吗?

我问的原因是当我尝试使用参数

添加它时
VOLUME ["/home/ec2-user/:/home/ec2-user/" ]

它创建容器内的目录,除了:之外没有文件。我如何构造这个参数来使用它?

2 个答案:

答案 0 :(得分:3)

您无法执行您想要执行的操作,因为主机目录依赖于您的主机和Dockerfile,因此您的映像必须不依赖于您的主机。只需“公开”一个卷并使用docker run将主机目录映射到该卷。

Note from Docker docs

  

主机目录本质上是依赖于主机的。为此原因,   您无法从Dockerfile挂载主机目录,因为已构建映像   应该是便携式的。主机目录根本不可用   潜在的主持人。

答案 1 :(得分:1)

请记住,较新版本的Docker不再使用-v /host/path:/container/path在主机中创建目录。这被认为是一种反模式,并且已被弃用。您应该使用不同的工具管理主机文件系统,以便为您提供更好的保证。