繁体   English   中英

Docker - 由docker-compose启动的容器,将文件所有权更改为root

[英]Docker - container started by docker-compose changing file ownership to root

我通过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:

main-app-container通过docker-compose up (作为root用户)启动时,已提交容器中的许多目录中的文件系统权限都将更改为root! 这是在Ubuntu 14.04,Docker 1.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

暂无
暂无

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

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