我一直在寻找码头工人几个小时;我正在运行Windows 8.1作为主机,而VirtualBox运行boot2docker。
这是我的docker-compose.yml:
mysql:
image: mysql
ports:
- "6603:3306"
environment:
MYSQL_ROOT_PASSWORD: mysql
MYSQL_USER: mysql
fpm:
image: php:7.0.2-fpm
volumes:
- /c/Users/Administrator/www:/var/www/html
ports:
- "9000:9000"
links:
- mysql
nginx:
image: nginx
ports:
- "80:80"
- "443:443"
volumes:
- /c/Users/Administrator/www:/var/www/html
links:
- fpm
这很好用(我可以访问我的docker ip地址并查看nginx欢迎页面);虽然当我运行mkdir时(例如通过php),它会给出关于Windows权限的错误。
答案 0 :(得分:0)
您应该使用volumes
代码而不是volumes_from
volumes
可以将目录从主机安装到容器
和volumes_from
从其他服务或容器安装目录请查看docker-compose file documentation
你的docker-compose文件应如下所示:
fpm:
image: php:7.0.2-fpm
volumes:
- /c/Users/Administrator/www:/var/www/html
ports:
- "9000:9000"
links:
- mysql
nginx:
image: nginx
ports:
- "80:80"
- "443:443"
volumes_from:
- fpm
links:
- fpm
答案 1 :(得分:0)
使用VirtualBox guest虚拟机添加功能限制了Windows文件系统与VirtualBox虚拟机的共享方式。
与VirtualBox VM共享的文件由用户“docker”和VM内的“staff”组拥有。 VM(和容器)内的进程无法更改这些文件的所有权。
作为解决方法,您可以尝试将容器作为这些文件的uid
/ gid
运行(--user 1000:50
);
-u, --user="" Username or UID (format: <name|uid>[:<group|gid>])
- ulimit = [] Ulimit选项
GitHub问题跟踪器上还有一个未解决的问题,提到了一些解决方法; #581 Only root can write to OSX volumes / Can't change permissions within