繁体   English   中英

Docker(NGINX,PHP,mySQL)和Windows-文件权限

[英]Docker (NGINX, PHP, mySQL) and Windows - File Permissions

我一直在研究docker几个小时。 我将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权限的错误。

您应该使用volumes的标签,而不是volumes_from

  • volumes可以将目录从主机挂载到容器和
  • volumes_from从其他服务或容器挂载目录

请查看docker-compose文件文档

您的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

这是使用VirtualBox来宾添加功能与VirtualBox虚拟机共享Windows文件系统的方式的限制。

与VirtualBox VM共享的文件由VM中的用户“ docker”和组“ staff”拥有。 VM(和容器)内部的进程无法更改这些文件的所有权。

解决方法是,您可以尝试以与这些文件相同的uid / gid (-- --user 1000:50 )运行容器。

-u, --user=""                 Username or UID (format: <name|uid>[:<group|gid>])

--ulimit = [] Ulimit选项

GitHub问题跟踪器上还有一个未解决的问题,其中提到了一些解决方法。 #581只有root可以写入OSX卷/不能在其中更改权限

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM