docker 主机可以连接自定义的网络,又可以连接到宿主机的bridge网络,进行外网访问,相当于双网卡,设置如下:
(1)定义自定义网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
(2)运行两个centos容器
docker run --privileged --cap-add SYS_ADMIN -e container=docker --name centos_master --net mynet -d centos:7.6.1810 /usr/sbin/init docker run --privileged --cap-add SYS_ADMIN -e container=docker --name centos_slave --net mynet -d centos:7.6.1810 /usr/sbin/init
复制
这个命令用来建立一个CENTOS的容器。
–privileged 指定容器是否是特权容器。这里开启特权模式。
–cap-add SYS_ADMIN 添加系统的权限。不然,系统很多功能都用不了的。
-e container=docker 设置容器的类型。
/usr/sbin/init 初始容器里的CENTOS。
以上的参数是必需的。不然,建立的CENTOS容器不能正常使用和互动。
如果没有初始化和特权等等的开关,就不能使用systemctl。所以,以上的开关和设置是一样不能少的。
查看mynet网络:docker network inspect mynet
"Containers": { "a7c5ac274402c817af76b0c32cded901a0625755c957a4ed8487a81aa9aa172a": { "Name": "centos_slave", "EndpointID": "c677d37936bd0d7c107d5d5f7a074cebd90900873df531f7eaaa8c8f3d1a85a9", "MacAddress": "02:42:c0:a8:00:03", "IPv4Address": "192.168.0.3/16", "IPv6Address": "" }, "c6e689818ca21969265e620261f0b0e07f19bc524847adaee170ff03e63b469c": { "Name": "centos_master", "EndpointID": "5848c8cfa67cef6ed143465b7a34b68660453a1cac696ed40e4697d3c0b5f69f", "MacAddress": "02:42:c0:a8:00:02", "IPv4Address": "192.168.0.2/16", "IPv6Address": "" } },
复制
(3)自定义网络加入bridge
由于要连接外网进行下载,故将my_centos_master和my_centos_slave加入到bridge。
docker network connect bridge centos_master
docker network connect bridge centos_slave
查看bridge网络:docker network inspect bridge
"Containers": { "a7c5ac274402c817af76b0c32cded901a0625755c957a4ed8487a81aa9aa172a": { "Name": "centos_slave", "EndpointID": "e44bcad2341c1fce318519a117fa5cd8e40b00a1d5f3db2911922c6760e729c6", "MacAddress": "02:42:ac:11:00:03", "IPv4Address": "172.17.0.3/16", "IPv6Address": "" }, "c6e689818ca21969265e620261f0b0e07f19bc524847adaee170ff03e63b469c": { "Name": "centos_master", "EndpointID": "c14aca283413d2d1b7e3cea7017dda2c9f5f7f11943469ef9652172220bd9b13", "MacAddress": "02:42:ac:11:00:02", "IPv4Address": "172.17.0.2/16", "IPv6Address": "" } },
复制
此时,centos_master和centos_slave既在bridge网络中,又在mynet网络中。
(4)查看容器网络ip
[root@xxx /]# ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.2 netmask 255.255.0.0 broadcast 192.168.255.255 ether 02:42:c0:a8:00:02 txqueuelen 0 (Ethernet) RX packets 8 bytes 656 (656.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 6 bytes 252 (252.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet) RX packets 11489 bytes 29739901 (28.3 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 11438 bytes 940859 (918.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1000 (Local Loopback) RX packets 128 bytes 11208 (10.9 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 128 bytes 11208 (10.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
复制
从上面网络信息可以看到,两张网卡,一个是自定义网络,一个是bridg网络
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
轻松上手:使用 Docker Compose 部署 TiDB 的简易指南
shunwahⓂ️
96次阅读
2025-04-27 16:19:49
5.1 | MySQL 企业版的 Docker 安装方式
严少安
61次阅读
2025-05-12 00:14:16
Dify使用deepseek
golang算法架构leetcode技术php
60次阅读
2025-04-21 10:35:08
Qwen3震撼发布,用openGauss x Dify抢先体验,秒速搭建智能知识库
Gauss松鼠会
28次阅读
2025-05-07 10:05:56
容器运行千问3的快速方法
济南小老虎
20次阅读
2025-05-06 06:37:44
CentOS 9 (stream) 安装 Docker
韩公子的Linux大集市
19次阅读
2025-04-21 07:08:32
Qwen3震撼发布,用openGauss x Dify抢先体验,秒速搭建智能知识库
openGauss
19次阅读
2025-05-06 10:19:35
CentOS Stream9 Docker可用源
韩公子的Linux大集市
12次阅读
2025-04-21 07:42:59
安利一个墙内镜像站
济南小老虎
11次阅读
2025-04-24 06:37:49
Docker的极简入门知识整理
济南小老虎
10次阅读
2025-04-20 22:08:26