我用gitlab,gitlab-runner,sonarqube,nexus .使用docker撰写测试构建链,然后在我公司的服务器上实现它们。这些服务器使用相同的网络桥。
这在我以前的ubuntu上工作得很好,但是由于我使用debian,默认网桥上的容器不能再连接到对接者组合桥。
由于这不是码头的操作实例,我如何禁用码头网络隔离?
发布于 2022-06-07 23:56:17
发布于 2022-06-18 08:15:36
这就是我发现的。docker iptables规则如下所示:
$ sudo iptables -vL --line-numbers
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 0 0 DOCKER-USER all -- any any anywhere anywhere
2 0 0 DOCKER-ISOLATION-STAGE-1 all -- any any anywhere anywhere
...
Chain DOCKER-ISOLATION-STAGE-1 (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 DOCKER-ISOLATION-STAGE-2 all -- docker0 !docker0 anywhere anywhere
2 0 0 DOCKER-ISOLATION-STAGE-2 all -- myiface0 !myiface0 anywhere anywhere
3 0 0 RETURN all -- any any anywhere anywhere
Chain DOCKER-ISOLATION-STAGE-2 (2 references)
num pkts bytes target prot opt in out source destination
1 0 0 DROP all -- any docker0 anywhere anywhere
2 0 0 DROP all -- any myiface0 anywhere anywhere
3 0 0 RETURN all -- any any anywhere anywhere
Chain DOCKER-USER (1 references)
num pkts bytes target prot opt in out source destination
1 0 0 RETURN all -- any any anywhere anywhere首先,它检查链式码头用户的规则是否允许在接受还是放弃之间作出决定,然后码头桥之间的每一个连接都由码头隔离-阶段-2链过滤。
我们可以的
在启动docker-组合之前,我将网络创建为root:
#!/bin/bash
if ! docker network ls | grep my-network
then
docker network create \
--driver=bridge \
--subnet=172.18.0.0/16 \
--opt com.docker.network.bridge.name=myiface0 \
my-network
fi
iptables -t filter -F DOCKER-ISOLATION-STAGE-2在我的码头-撰写文件中:
services:
my-gitlab:
networks:
- my-network
...
...
networks:
my-network:
external: truehttps://serverfault.com/questions/1102209
复制相似问题