我有这样的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
它是空的。
我究竟做错了什么?
尝试使用:
volumes:
- ./server:/server
而不是server/
- 在某些情况下Docker不喜欢尾随斜杠。
根据docker卷文档,
https://docs.docker.com/engine/tutorials/dockervolumes/#/mount-a-host-directory-as-a-data-volume
host-dir可以是绝对路径或名称值。如果为host-dir提供绝对路径,则Docker将绑定到您指定的路径。如果提供名称,Docker将按该名称创建命名卷
当我想从命令行挂载目录时,我遇到了类似的问题:
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