Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker-Docker compose将文件所有权更改为根目录启动的容器_Docker_Docker Compose - Fatal编程技术网

Docker-Docker compose将文件所有权更改为根目录启动的容器

Docker-Docker compose将文件所有权更改为根目录启动的容器,docker,docker-compose,Docker,Docker Compose,我通过docker compose文件启动六到七个容器。一个容器导致了一个大问题!以下是相关章节: services: ... main-app: image: mycompany/sys:1.2.3 container_name: "main-app-container" ports: - "8080:8080" - "8009" volumes: - db_data:/var/lib/home/data:rw

我通过docker compose文件启动六到七个容器。一个容器导致了一个大问题!以下是相关章节:

services:
    ...
    main-app:
    image: mycompany/sys:1.2.3
    container_name: "main-app-container"
    ports:
    - "8080:8080"
    - "8009"
    volumes:
     - db_data:/var/lib/home/data:rw
     - /opt/mycompany/sys/config:/opt/mycompany/sys/config:rw
    networks:
    - systeminternal
    hostname:  "mylocalhost.company.com" 
volumes:
    db_data:
    driver: local
networks:
    systeminternal:
当通过
docker compose up
(作为root用户)启动
main app container
时,提交容器中许多目录中的文件系统权限都将更改为root!这是在Ubuntu14.04,Docker1.12.x上运行的(不确定是哪个x)


我们有另一个系统,在那里我们以本地用户的身份运行一切。当我们将一个shell执行到该容器中时,所有文件权限都是本地用户的,而本地用户在提交时是其所有权。通过谷歌搜索,我很确定这与数量有关,但找不到任何明确的信息。欢迎任何帮助

这是主机装载的预期行为,也就是说,
/opt/mycompany/sys/config
中的所有内容都将具有与主机上的文件相同的UID/GID,这是经过设计的

将文件更改为主机上所需的uid/gid:
chown-R 123:321/opt/mycompany/sys/config
,或者将容器设置为乐于使用主机的uid/gid

它与docker compose无关,当您使用


docker run-v/opt/mycompany/sys/config:/opt/mycompany/sys/config mycompany/sys:1.2.3

您是否尝试在图像中添加用户。我认为如果你以root用户身份运行docker compose,你将在目录中拥有root权限。你看到了吗?docker本身不应该更改权限,这将与你正在运行的应用程序相关。