将容器连接到用户定义的网桥
创建新容器时,您可以指定一个或多个
**--network**标志。此示例将 Nginx 容器连接到my-net网络。它还将容器中的 80 端口发布到 Docker 主机上的 8080 端口,以便外部客户端可以访问该端口。连接到my-net 网络的任何其他容器都可以访问my-nginx容器上的所有端口,反之亦然。
$ docker create --name my-nginx \--network my-net \--publish 8080:80 \nginx:latest
要将**正在运行的**容器连接到现有的用户定义网桥,请使用该 **docker network connect**命令。以下命令将已运行的my-nginx容器连接 到已存在的my-net网络:
$ docker network connect my-net my-nginx
启用从 Docker 容器到外界的转发
默认情况下,来自连接到默认网桥网络的容器的流量 不会转发到外部世界。要启用转发,您需要更改两个设置。这些不是 Docker 命令,它们会影响 Docker 主机的内核。
- 配置 Linux 内核以允许 IP 转发。
sysctl net.ipv4.conf.all.forwarding=1
- 配置 Linux 内核以允许 IP 转发。
- 将策略的iptables FORWARD策略从更改DROP为 ACCEPT。
sudo iptables -P FORWARD ACCEPT
配置默认网桥网络
要配置默认bridge网络,请在daemon.json. 这是一个daemon.json指定了多个选项的示例。仅指定您需要自定义的设置。{"bip": "192.168.1.5/24","fixed-cidr": "192.168.1.5/25","fixed-cidr-v6": "2001:db8::/64","mtu": 1500,"default-gateway": "10.20.1.1","default-gateway-v6": "2001:db8:abcd::89","dns": ["10.20.1.2","10.20.1.3"]}
- 将策略的iptables FORWARD策略从更改DROP为 ACCEPT。
