容器内的装入量是空的

时间:2016-07-26 07:45:28

标签: docker docker-compose

我有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时,它是空的。

我做错了什么?

5 个答案:

答案 0 :(得分:13)

尝试使用:

volumes:
  - ./server:/server

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

答案 1 :(得分:6)

根据docker volume文档,

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

  

host-dir可以是绝对路径或名称值。如果你   提供host-dir的绝对路径,Docker绑定挂载到   您指定的路径。如果提供名称,Docker将创建一个命名卷   以那个名字

答案 2 :(得分:6)

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

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

答案 3 :(得分: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

答案 4 :(得分:0)

我不知道其他人是否犯了同样的错误,但主机目录路径必须从 /home 开始

所以我的 msitake 是在我的 docker-compose 中我错误地指定了以下内容:

services:
    myservice:
        build: .
        ports:
            - 8888:8888
        volumes:
          - /Desktop/subfolder/subfolder2:/app/subfolder

当主机路径应该是 /home 的完整路径时。就像是:

services:
    myservice:
        build: .
        ports:
            - 8888:8888
        volumes:
          - home/myuser/Desktop/subfolder/subfolder2:/app/subfolder