容器内的装入量是空的

问题描述 投票:11回答:4

我有这样的docker-compose.yml

db:
  image: mongo:latest
  ports:
    - "27017:27017"
server:
  image: artificial/docker-sails:stable-pm2
  command: sails lift
  volumes:
    - server/:/server
  ports:
    - "1337:1337"
  links:
    - db

server/是相对于docker-compose.yml文件的文件夹。然而,当我docker exec -it CONTAINERID /bin/bash和检查/server它是空的。

我究竟做错了什么?

docker docker-compose
4个回答
13
投票

尝试使用:

volumes:
  - ./server:/server

而不是server/ - 在某些情况下Docker不喜欢尾随斜杠。


16
投票

除了这里的答案,它可能与Docker Setting中的驱动器共享有关。在Windows上,我发现需要启用驱动器共享。

如果它已经启用并且您最近更改了PC的密码,则需要禁用驱动器共享(并单击“应用”)并再次重新启用它(并单击“应用”)。在此过程中,系统将提示您输入PC的新密码。完成此过程后,再次运行docker命令(运行或撰写)enter image description here


7
投票

根据docker卷文档,

https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume

host-dir可以是绝对路径或名称值。如果为host-dir提供绝对路径,则Docker将绑定到您指定的路径。如果提供名称,Docker将按该名称创建命名卷


0
投票

当我想从命令行挂载目录时,我遇到了类似的问题:

docker run -tid -p 5080:80  -v /d/my_project:/var/www/html/my_project nimmis/apache-php5

容器已成功启动,但挂载的目录为空。

原因是安装的目录必须位于用户的主目录下。所以,我在c:\Users\<username>下创建了一个符号链接,它安装到我的项目文件夹d:\my_project并安装了一个:

 docker run -tid -p 5080:80  -v /c/Users/<username>/my_project/:/var/www/html/my_project nimmis/apache-php5
© www.soinside.com 2019 - 2024. All rights reserved.