我尝试使用 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 一样连接我的容器,而无需停止容器并独立运行?
更新:
撰写文件中存在可以设置的
user
属性。这记录在 docker-compose 文件参考中。
...
services:
datapower:
build: .
user: root
ports:
- "9090:9090"
depends_on:
- db
...
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
希望这可以节省其他人寻找这个的浪费时间!