Docker创建 bridge 网络,创建自定义网络
docker network create --driver bridge --subnet 172.18.0.0/16 kafka_network
查看已经存在的网络
docker network ls
注意:如果设置网络不生效,查看是使用bin下面的route还是sbin下面的,通过如下命令复制一样,在启动的时候可以查看加载网络配置文件
[root@localhost ~]# tail -f /var/log/messages
Feb 28 11:48:12 localhost systemd: boot-init-muranoagent.service: main process exited, code=exited, status=1/FAILURE
Feb 28 11:48:12 localhost systemd: Unit boot-init-muranoagent.service entered failed state.
Feb 28 11:48:12 localhost systemd: boot-init-muranoagent.service failed.
Feb 28 11:49:01 localhost systemd: Stopping LSB: Bring up/down networking...
Feb 28 11:49:01 localhost network: Shutting down interface eth0: [ OK ]
Feb 28 11:49:01 localhost network: Shutting down loopback interface: [ OK ]
Feb 28 11:49:01 localhost systemd: Stopped LSB: Bring up/down networking.
Feb 28 11:49:01 localhost systemd: Starting LSB: Bring up/down networking...
Feb 28 11:49:01 localhost network: Bringing up loopback interface: [ OK ]
Feb 28 11:49:05 localhost network: Bringing up interface eth0: Error: inet6 prefix is expected rather than "192.168.11.0/24".
Feb 28 11:49:10 localhost network: [ OK ]
Feb 28 11:49:10 localhost systemd: Started LSB: Bring up/down networking.
Feb 28 11:53:12 localhost systemd: boot-init-muranoagent.service holdoff time over, scheduling restart.
Feb 28 11:53:12 localhost systemd: Stopped boot app-center Murano-agent Service.
Feb 28 11:53:12 localhost systemd: Started boot app-center Murano-agent Service.
Feb 28 11:55:30 localhost systemd: boot-init-muranoagent.service: main process exited, code=exited, status=1/FAILURE
Feb 28 11:55:30 localhost systemd: Unit boot-init-muranoagent.service entered failed state.
Feb 28 11:55:30 localhost systemd: boot-init-muranoagent.service failed.
[root@localhost ~]# which is route
/usr/bin/which: no is in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/jdk/bin:/root/bin)
/usr/sbin/route
[root@localhost ~]#
[root@localhost ~]# cp /bin/route /sbin/route
临时的静态路由配置,这样就都可以保障生效了(192.168.11.0这个是需要范围的来源ip,192.168.16.1这个是目的地址的官关)
[root@localhost ~]# route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.16.1
设置的永久的静态路由,在vi /etc/sysconfig/static-routes添加如下(没有就新增)
any net 192.168.11.0/24 gw 192.168.16.1
命令ip add是查看网络下有那些网络使用
[root@localhost ~]
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:fc:0b:23 brd ff:ff:ff:ff:ff:ff
inet 192.168.11.47/24 brd 192.168.11.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fd0d:3fd3:f1d::d4a/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fd0d:3fd3:f1d:0:891f:a630:eae4:dfcc/64 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::1a74:c189:72b3:230b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:c6:57:81 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
rout -n
[root@localhost ~]
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.11.1 0.0.0.0 UG 100 0 0 ens33
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.11.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
docker network ls
[root@localhost ~]
NETWORK ID NAME DRIVER SCOPE
c1006322fec2 bridge bridge local
1deaea80c25a host host local
e214db33d8f7 none null local
如果在尝试修改 Docker 的配置文件后,设置依然不生效,您可以尝试以下方法:
停止 Docker 服务:
sudo systemctl stop docker
删除 docker0 网桥及相关的配置文件:
sudo ip link set dev docker0 down
sudo brctl delbr docker0
sudo rm -rf /var/lib/docker/network/files/*
重新启动网络服务:
sudo systemctl restart network
重新创建 docker0 网桥并设置新的 IP 地址:
sudo brctl addbr docker0
sudo ip addr add 192.168.100.1/24 dev docker0
sudo ip link set dev docker0 up
启动 Docker 服务:
sudo systemctl start docker
方法二,编辑 Docker 的配置文件 /etc/docker/daemon.json(如果没有该文件,则创建一个):
sudo nano /etc/docker/daemon.json
在文件中添加以下内容(假设您要将 docker0 的 IP 地址设置为 192.168.100.1/24):
json
{
"bip": "192.168.100.1/24"
}
保存并关闭文件
重新启动 Docker 服务:
sudo systemctl restart docker