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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
60分钟部署Oracle 21c RAC
王先生
246次阅读
2025-03-04 16:31:52
玩转DeepSeek系列:使用OCI GPU快速部署推理模型
甲骨文云技术
97次阅读
2025-03-03 09:46:33
EMQX MCP Server:实现 Claude 与 MQTT 交互新可能
EMQX
42次阅读
2025-03-07 10:29:52
docker下mysql升级
在路上
37次阅读
2025-03-02 19:55:18
如何使用 RisingWave 和 PuppyGraph 构建高性能实时图分析框架
RisingWave中文开源社区
29次阅读
2025-03-18 10:49:54
详细到没朋友的 NebulaGraph 桌面版部署指南
NebulaGraph 技术社区
25次阅读
2025-03-07 10:29:53
一键部署 GPU Kind 集群,体验 vLLM 极速推理
Se7en的架构笔记
20次阅读
2025-03-24 09:41:41
NineData 社区版初体验,大超预期
老叶茶馆
16次阅读
2025-03-18 10:45:49
使用Docker五分钟快速安装配置oracle数据库【最新版】【测试成功】
巴韭特锁螺丝
10次阅读
2025-03-10 08:47:21
Docker更新反人类?一款容器管理效率翻倍工具,还自带备份防崩溃
科技小猿
10次阅读
2025-03-10 08:01:15