Docker-Compose安装的文件不归root所有

时间:2018-01-23 20:15:58

标签: macos docker docker-compose

我将我的笔记本电脑/主机的工作目录中的文件装入容器,我不确定为什么装载的文件归www-data所有。 q是在主机上创建的,因此它由root拥有,正如预期的那样。

内部容器:

enter image description here

其他一些观察结果:

主机UID(我的OS X帐户):1783256022(不确定为什么会这样)

Container UID(www-data):33

Dockerfile:

FROM nginx:1.13.8

RUN apt-get update
RUN apt-get install -y nano && \
    apt-get install -y git && \
    apt-get install -y procps && \
    apt-get install net-tools

RUN mkdir -p /var/www/html
WORKDIR /var/www/html

搬运工-compose.yml:

version: '3'
services:

  web:
    build:
      context: ./docker/nginx
    image: tc-web:0.1.0
    container_name: tc-web
    volumes:
      - ./:/var/www/html/
      - ./docker/nginx/.bashrc:/root/.bashrc
      - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
      - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    ports:
      - 8080:80

1 个答案:

答案 0 :(得分:2)

当你在类Unix系统中使用卷挂载目录时,文件将保持与主机相同的权限(就gid而言)。这意味着在主机(可能是您的用户)中创建文件的uid与容器内的www-data用户具有相同的用户ID。

当您从容器内部创建文件时,由于容器以root用户身份运行,因此文件将由root用户拥有(在Container内部和外部)。