在Docker容器中将卷挂载到用户的主目录下

15

我想将一个卷挂载到Docker容器内用户的主目录。在我的docker-compose.yml文件中,我已经指定了如下的Volumes属性。

volumes:
  - ./conf:$HOME/conf

我期望这会挂载卷到/root/conf,但似乎并没有发生。Docker/Docker Compose不支持在卷路径中进行环境变量替换吗?是否有一种方法可以将卷挂载到用户的主目录中,而无需知道容器内的主目录是/ root?


需要翻译的内容:是指哪个用户 - 运行Docker命令的当前用户还是在Dockerfile中设置的容器内用户? - Michael
1
容器内的用户。我的应用程序在容器内运行时,会在用户的主目录中查找一个文件,一旦它在容器内启动。 - Ryan Baxter
我认为这是颠倒的,我的意思是 - 应用程序可以始终查找相同的位置,您只需在那里安装不同的内容。容器中的用户始终是相同的。 - Michael
Docker会不会有一天决定将默认用户改为root以外的其他用户? - Ryan Baxter
1
你可以通过Dockerfile中的USER命令来控制这个:http://docs.docker.com/engine/reference/builder/#user - Michael
谢谢 @Michael,这是一个足够好的解决方案! - Ryan Baxter
1个回答

3
正如评论中 @Michael 提到的,我可以使用USER命令来确保在容器中运行应用程序时使用特定用户。这将允许我将卷挂载到该用户的主目录,并确保我的应用程序中放置了正确的文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接