Hed*_*dge 13 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
Run Code Online (Sandbox Code Playgroud)
server/
是相对于文件的docker-compose.yml
文件夹.但是,当我docker exec -it CONTAINERID /bin/bash
检查/server
它是空的.
我究竟做错了什么?
pap*_*gee 21
除了此处的答案外,它可能与Docker Setting中的驱动器共享有关。在Windows上,我发现需要启用驱动器共享。
如果已经启用它,并且您最近更改了PC的密码,则需要禁用驱动器共享(然后单击“应用”),然后重新启用它(然后单击“应用”)。在此过程中,系统将提示您输入PC的新密码。完成此过程后,再次运行您的docker命令(运行或撰写)
ldg*_*ldg 13
尝试使用:
volumes:
- ./server:/server
Run Code Online (Sandbox Code Playgroud)
而不是 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
Run Code Online (Sandbox Code Playgroud)
容器已成功启动,但挂载目录为空。
原因是挂载的目录必须在用户的主目录下。因此,我在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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
18539 次 |
最近记录: |