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

所以当运行容器的命令时,我可以用命令创build我想要的主机卷装载

docker run -d -P --name web -v /home/ec2-user:/home/ec2-user testing123 

如何将/src/webapp:/opt/webapp主目录转换为Dockerfile中的参数? 我可以用VOLUME创build这种types的存储吗?

我所问的原因是,当我试图添加它的参数

 VOLUME ["/home/ec2-user/:/home/ec2-user/" ] 

它会在容器内创build一个没有文件的目录,除了:。 我将如何构build这个论点来处理它呢?

你不能做你想做的,因为主机目录是依赖于你的主机和你的Dockerfile,因此你的图像不能依赖于你的主机。 只需“公开”一个卷,然后使用docker run将主机目录映射到该卷。

来自Docker文档的注意事项 :

主机目录本质上取决于主机。 因为这个原因,你不能从Dockerfile挂载主机目录,因为build立的映像应该是可移植的。 主机目录在所有可能的主机上都不可用。

请记住,更新版本的Docker,不会再使用-v /host/path:/container/path在主机上创build目录。 这被认为是反模式,并被弃用。 您应该使用不同的工具pipe理您的主机文件系统,为您提供更好的保证。