如何配置 docker-compose.yml 以以 root 身份启动容器

问题描述 投票:0回答:2

我尝试使用 docker-compose-yml 连接两个容器,但它不起作用。这是我的 docker-compose.yml 文件:

version: "3"
services:
    datapower:
        build: .
        ports:
            - "9090:9090"
        depends_on:
            - db
    db:
        image: "microsoft/mssql-server-linux:2017-latest"
        environment:
            SA_PASSWORD: "your_password"
            ACCEPT_EULA: "Y"
        ports:
        - "1433:1433"

当我做时:

docker-compose up

这是我的两个容器。然后我停止一个容器,然后运行独立停止的同一个容器,如下所示:

docker-compose run -u root --name nameofcontainer 'docker-compose.yml 中命名的容器名称'

这样,容器的连接就可以工作了。是否有一种方法可以配置我的 docker-compose.yml 以像 root 一样连接我的容器,而无需停止容器并独立运行?

docker docker-compose
2个回答
190
投票

更新:

撰写文件中存在可以设置的

user
属性。这记录在 docker-compose 文件参考中。

...
services:
    datapower:
        build: .
        user: root
        ports:
            - "9090:9090"
        depends_on:
            - db
...

25
投票

docker-compose.yml中设置用户
组:

发现了另一种方法,不仅可以在 docker-compose.yml 文件中设置 user,还可以设置 group,该方法未记录在 Docker Compose 文件参考中 @yamenk 在接受的答案中提供了有用的信息。

我需要明确设置一个用户组的容器,并发现

user:
中的
docker-compose.yml
参数可以填充为由冒号分隔的UID:GID映射。

下面是我的 docker-compose.yml 文件中的一个片段,其中该表单经过测试并发现可以正常工作:

services:
 zabbix-agent:
  image: zabbix/zabbix-agent2:ubuntu-6.0-latest
  container_name: DockerHost1-zabbix-agent2
  user: 0:0
<SNIP>

参考:

https://github.com/zabbix/zabbix-docker/issues/710

希望这可以节省其他人寻找这个的浪费时间!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.