2016-12-15 145 views
0

我有以下docker-compose.yml文件:Docker正在更改文件所有權和權限,爲什麼?

version: '2' 
services: 
    php-fpm: 
    container_name: "php71-fpm-nginx" 
    build: php-fpm 
    ports: 
     - 8080:80 
     - 9002:9002 
    environment: 
     PHP_ERROR_REPORTING: 'E_ALL & ~E_DEPRECATED & ~E_NOTICE' 
     STATUS_PAGE_ALLOWED_IP: '127.0.0.1' 
    volumes: 
     - ~/dev:/data/www 
    links: 
     - db 
    db: 
    container_name: "db_mysql" 
    image: mysql 
    environment: 
     MYSQL_ROOT_PASSWORD: '1qazxsw2' 
     MYSQL_DATABASE: 'nortwind' 
     MYSQL_USER: 'db_user' 
     MYSQL_PASSWORD: '1qazxsw2' 
    volumes: 
     - ./dev/northwindSQL:/docker-entrypoint-initdb.d 
     - ~/data/db:/var/lib/mysql 
    elk: 
    container_name: "elk" 
    image: willdurand/elk 
    ports: 
     - 81:80 
    volumes: 
     - ./elk/logstash:/etc/logstash 
     - ./elk/logstash/patterns:/opt/logstash/patterns 
    volumes_from: 
     - php-fpm 

一切工作正常,但只要我運行命令docker-compose up -d --build和容器啓動時~/dev在主機的所有權和權限得到更新如下:

$ ls -la ~/dev/ 
total 96 
drwxrwxr-x 11  80  80 4096 Dec 15 14:36 . 
drwx------. 40 rperez rperez 4096 Dec 15 14:26 .. 
drwxr-xr-x 5  80  80 4096 Mar 13 2015 css 
-rw-r--r-- 1  80  80 189 Mar 10 2016 DEMO_NOTES.TXT 

這是預期的行爲?這是來自Dockerfile的東西?有任何想法嗎?

+0

AFAIK,碼頭不會改變任何東西。你的一個應用程序/進程是。映射捲上的文件權限可能無法按照您認爲的方式工作 - 請檢查它。 – user2105103

回答

2

卷佔用了容器中已有路徑的所有權。如果容器中的位置由root擁有,那麼卷將獲得root用戶。如果容器中的位置由 擁有,則該卷將獲得該位置。