Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >docker 网络介绍

docker 网络介绍

作者头像
dogfei
发布于 2020-07-31 03:54:07
发布于 2020-07-31 03:54:07
4540
举报
文章被收录于专栏:devops探索devops探索

docker允许通过外部访问容器或容器互联的方式来提供网络服务。

外部访问容器

容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过-P-p参数来指定端口映射。

当使用-P参数时

1 2 3 4 5

docker run -d -P training/webapp python app.py 查看 [root@xs_test01 wwwlogs]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a6068ede204d training/webapp "python app.py" 21 seconds ago Up 19 seconds 0.0.0.0:32768->5000/tcp festive_agnesi

通过docker logs -f NAMES来查看

1 2

[root@xs_test01 wwwlogs]# docker logs -f festive_agnesi * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

使用-p时,需要单独指定地址,且在一个端口上只能绑定一个容器,否则会报错

1 2 3 4 5 6 7 8

docker run -d -p 1111:11 training/webapp python app.py #这个是将本地的1111端口映射到容器的11端口 docker run -d -p 127.0.0.1:1112:12 training/webapp python app.py #映射到指定地址的指定端口 docker run -d -p 127.0.0.1::5000 training/webapp python app.py #映射到指定地址的任意端口 docker run -d -p 127.0.0.1::5000/udp training/webapp python app.py #使用udp来标记udp端口 docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py #绑定多个端口 [root@xs_test01 wwwlogs]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 51c9ba211f9c training/webapp "python app.py" 9 seconds ago Up 8 seconds 0.0.0.0:5000->5000/tcp, 0.0.0.0:3000->80/tcp musing_albattani

查看端口映射

使用ddocker port NAMES PORT来查看

1 2

[root@xs_test01 wwwlogs]# docker port compassionate_ptolemy 5000 127.0.0.1:32769

容器互联

新建网络

1 2

[root@xs_test01 wwwlogs]# docker network create -d bridge my-net a1822b830e76d490f27fcdf5ac0b93595c9de4726a801b703d6ed06db5b78c59

新建容器并连接刚创建的网络

1 2 3 4 5 6

[root@xs_test01 wwwlogs]# docker run -it --rm --name busybox1 --network my-net busybox sh Unable to find image 'busybox:latest' locally latest: Pulling from library/busybox d070b8ef96fc: Pull complete Digest: sha256:2107a35b58593c58ec5f4e8f2c4a70d195321078aebfadfbfb223a2ff4a4ed21 Status: Downloaded newer image for busybox:latest

打开另一个终端再新建一个容器并加入到刚创建的网络

1 2

[root@xs_test01 ~]# docker run -it --rm --name busybox2 --network my-net busybox sh / #

在第一个终端中测试连通性

1 2 3 4

/ # ping busybox2 PING busybox2 (172.18.0.3): 56 data bytes 64 bytes from 172.18.0.3: seq=0 ttl=64 time=0.441 ms 64 bytes from 172.18.0.3: seq=1 ttl=64 time=0.202 ms

同样在第二个终端中测试

1 2 3 4

/ # ping busybox1 PING busybox1 (172.18.0.2): 56 data bytes 64 bytes from 172.18.0.2: seq=0 ttl=64 time=0.338 ms 64 bytes from 172.18.0.2: seq=1 ttl=64 time=0.188 ms

如果有多个容器要互联,可以使用docker compose

配置DNS

如何自定义配置容器的主机名和DNS

在容器中使用mount来查看挂载信息:

1 2 3 4

mount /dev/mapper/centos-root on /etc/resolv.conf type xfs (rw,relatime,attr2,inode64,noquota) /dev/mapper/centos-root on /etc/hostname type xfs (rw,relatime,attr2,inode64,noquota) /dev/mapper/centos-root on /etc/hosts type xfs (rw,relatime,attr2,inode64,noquota)

如果退出容器可以使用docker exec来进入

1

docker exec -it busybox1 sh

修改/etc/docker/daemon.json

1 2 3 4

[root@xs_test01 docker]# cat daemon.json { "dns": ["114.114.114.114","8.8.8.8"] }

修改完成后一定后重启docker

1

systemctl restart docker

启动一个容器查看dns是否生效

1 2 3

[root@xs_test01 docker]# docker run -it --rm ubuntu:17.10 cat etc/resolv.conf nameserver 114.114.114.114 nameserver 8.8.8.8

这种修改方式,所有的容器都会生效,当然也可以手动对单个容器做修改。

1 2 3

[root@xs_test01 docker]# docker run -it --rm --name web_server -h webserver --dns=8.8.8.8 centos /bin/bash [root@webserver /]# cat /etc/resolv.conf nameserver 8.8.8.8

-h HOSTNAME--hostname=HOSTNAME设定容器的主机名,会被写到容器的/etc/hostname和/etc/hosts

--dns=IP添加dns服务器到容器的/etc/resolv.conf

高级网络配置

当docker启动时,会自动在主机上创建一个docker0虚拟网桥,实际上是linux的一个bridge,可以理解为一个软件交换机,它会在挂载到它的网口之间进行转发,同时docker随机分配一个本地未占用的私有网段中的一个地址给docker0接口,然后我们在启动容器的时候也会自动分配一个同一网段的地址。

当我们创建了一个容器的时候,同时也会创建一个veth pair接口,当数据包发送到一个接口时,另外一个接口也可以收到相同的数据包,这两个接口一个是在容器中被绑定,名字为eth0,另一个在被挂载到docker0网桥上,以veth开头,这就是容器和主机之间进行通讯的原理。

手动起一个容器看下主机网卡变化:

1 2

# docker start musing_albattani musing_albattani

ifconfig查看

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

# ifconfig veth637e217: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::b827:18ff:fe04:b918 prefixlen 64 scopeid 0x20<link> ether ba:27:18:04:b9:18 txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 8 bytes 648 (648.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:66ff:fec3:a078 prefixlen 64 scopeid 0x20<link> ether 02:42:66:c3:a0:78 txqueuelen 0 (Ethernet) RX packets 3511 bytes 199800 (195.1 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4628 bytes 73413939 (70.0 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

看到docker0网桥和在启动容器后起的网卡名是以veth开头的网卡被挂载到了docker0上,也可以验证容器在启动时会自动分配一个同一网段的地址。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
7岁男童因下棋太快?机器人竟夹断其手指
在以往的比赛中,我们最常听到的一句话就是友谊第一,比赛第二,要有竞技精神,但也要避免受伤。
AI科技大本营
2022/12/09
4170
7岁男童因下棋太快?机器人竟夹断其手指
国际象棋机器人夹断7岁男孩手指,原因是「棋手违反安全规则」?
机器之心报道 编辑:蛋酱 万幸的是伤势不重,这位 7 岁的棋手第二天回到了赛场,并照常完成了比赛。 据俄罗斯通讯社塔斯社报道,在上周的莫斯科国际象棋公开赛上,一个国际象棋机器人折断了一名 7 岁男孩的手指。 事发现场的视频显示,机器人在拿走了男孩的一个棋子后,突然扑了上来,似乎是对男孩针对自己上一步落子动作的「快速反应」感到不安。 图片素材来源:Baza 俄罗斯国际象棋联合会副主席 Sergey Smagin 分析,机器人做出这个动作的原因可能是男孩没有等待机器完成移动棋子的动作,而是选择了快速反击。 「
机器之心
2022/07/26
4920
国际象棋机器人夹断7岁男孩手指,原因是「棋手违反安全规则」?
下棋机器人折断7岁男孩手指,网友:违反了机器人第一定律
金磊 发自 凹非寺 量子位 | 公众号 QbitAI 谁能想到跟一个机器人下棋,竟然还能把手指弄折了。 这事就发生在莫斯科国际象棋公开赛上,一个7岁男孩正在对战一台国际象棋机器人。 然而就在下一秒,机器人的机械臂突然狠狠地“咬”住了小选手的手指。 从录像中不难看出,小男孩十分痛苦地在挣扎,但是机械臂却迟迟未做出任何反应。 随后数名成年人冲进现场,在几人合力之下,才将小朋友的手指从“虎口”中拿了出来。 而此时小朋友的手指已经处于骨折状态,旁边的女士(可能是母亲)见状也是万分焦急,掩面不知所措。 对此,莫斯科国
量子位
2022/07/27
3750
下棋机器人折断7岁男孩手指,网友:违反了机器人第一定律
致命bug,7岁男童被夹断手指!
为了避免 Bug 导致的损失,上线前需要做好充分的测试,这也是公司时常教育我们的话:对上线持“敬畏之心”。
用户5021203
2022/10/05
3420
致命bug,7岁男童被夹断手指!
19岁美国男孩击败国际象棋世界冠军,被指利用AI作弊!
大数据文摘出品 作者:Caleb 10月初的一场国际象棋比赛,让19岁的Hans Niemann一跃成名。 相信大家都还记得,这场比赛也让Niemann直接打破了多年位居世界第一Magnus Carlsen在此之前创下了53场“西部不败”的记录。 是的,在所有人看来,这本来是一场没有任何悬念的比赛。 随后,大家都开始怀疑Niemann在比赛中作弊。 毕竟这也不是他第一次了。Niemann也亲口承认了曾在两次比赛中有过作弊行为,他解释说,这是因为他十分想与顶级棋手比赛,于是将作弊视为一条捷径,这是“他一
大数据文摘
2023/04/10
3620
19岁美国男孩击败国际象棋世界冠军,被指利用AI作弊!
象棋机器人「弄折了」棋童的手指。。。
在周四结束的一场比赛中,一台使用AI帮助同时下三场比赛的国际象棋机器人出了岔子,不幸弄折了一名7岁男孩的手指。 俄罗斯国营新闻机构Baza在其Telegram频道上发布了拍下当时场面的视频片段,声称这名男孩骨折,但其他方面并无大碍。推特网民随后将这段视频上传到了网上,供所有人观看。 据Baza报道,这个机器人“压折”了孩子的手指,但也有可能是翻译有误或意思有出入。这段视频看起来好像机器人把它的“手指”或棋子压到了孩子手指的上面,机器人好像被弄糊涂了。 俄罗斯新闻媒体塔斯社报道,这名孩子最后在打着石膏的情况下
云头条
2022/07/27
3150
智能肛珠作弊案反转:19岁小将告世界冠军诽谤索赔7亿
于是在网上引起了轩然大波。不少人认为,尼曼正是将棋局信息给了“肛珠型”超级计算机,利用它强大的AI能力,分析棋局从而帮助他击败了世界冠军。
量子位
2022/12/08
3250
智能肛珠作弊案反转:19岁小将告世界冠军诽谤索赔7亿
猫咪机器人下国际象棋快逼疯人类,顶级棋手也只能和它打成平局
Alex 发自 凹非寺 量子位 | 公众号 QbitAI 这是一只看起来人畜无害的小猫咪,瞧它大大的眼睛和无辜的眼神。 但此喵最近在国际象棋圈引起了轰动。 国际大师(International Master)Levy Rozman还半开玩笑半认真地说: 国际象棋世界必须联合起来反对米坦斯(Mittens,这只猫的名字)。 △Levy Rozman在小蓝鸟上ID名为GothamChess 事情是这样的,今年1月1日,在线国际象棋网站Chess.com推出了五种国际象棋机器人,小猫米坦斯就是其中之一。 想撸
量子位
2023/02/28
6540
猫咪机器人下国际象棋快逼疯人类,顶级棋手也只能和它打成平局
深度学习机器72小时自学象棋, 达到国际大师水平
距离IBM深蓝(Deep Blue)超级计算机在国际标准锦标赛规则下首次击败国际象棋世界冠军加里·卡斯帕罗夫(Gary Kasparov)已经有差不多20年了. 从那时起, 下象棋计算机的能力变得更加强大, 甚至运行在智能手机上的现代象棋引擎都几乎能让最强的人类毫无招架之力.
花落花飞去
2018/02/05
2.5K0
深度学习机器72小时自学象棋, 达到国际大师水平
败给深蓝20年后,棋王卡斯帕罗夫说:智能机器不是人类的威胁
陈桦 编译整理 量子位 报道 | 公众号 QbitAI 1985年,22岁的棋手卡斯帕罗夫拿下了他人生中的第一个世界冠军,再也没有人类能撼动他在国际象棋界的地位。 1997年5月11日,卡斯帕罗夫对阵
量子位
2018/03/22
8270
败给深蓝20年后,棋王卡斯帕罗夫说:智能机器不是人类的威胁
13岁男孩从菜鸟到机器人大赛冠军,我被这帮小孩造的机器人惊到了!
正当我睡得正香的时候,突然觉得脑袋被谁踢了一脚,还没等我睁开双眼,就感觉到了从四面八方袭来的攻击,我是谁?我在哪?什么情况?
新智元
2019/12/18
6340
机器人的崛起将导致人类失业?经济学家并不这么看
翻译/校对: Mika 本文为 CDA 数据分析师原创作品,转载需授权 观看更多国外公开课,点击"阅读原文" 近年来,人工智能和机器人得到了突飞猛进的发展。这导致一些人预测:未来人类将无法找到工作。 中英双字视频如下: 机器人的崛起并不意味着人类的失业 针对不方便打开视频的小伙伴,CDA字幕组也贴心的整理了文字版本,如下: 十年前,机器人看起来还很有局限性。 如今,已经大不相同。 计算机不仅仅能赢得国际象棋 ;它们还能在《危险边缘》中获胜(《危险边缘》(Jeopardy)美国智力问答节目);它们还能
CDA数据分析师
2018/04/19
1.1K0
机器人的崛起将导致人类失业?经济学家并不这么看
ChatGPT 一周年:生成式 AI 出现后,我决定以后砸锅卖铁都不让后代当程序员了
就像我的父母坚信我能读书写字一样,我理所当然地认为,我的孩子也一定能像我一样编程。编程是一门新兴艺术,也是一门基本技艺,而且正日益变得重要。熟练掌握编程是对孩子读写能力有益的补充,还能让他们保持就业竞争力。在我写下这些文字时,我的妻子怀着我们的第一个孩子,离预产期大约还有三周。我是一名专业的程序员,但等到孩子能够打字的时候,编程作为一项有价值的技能可能已经从这个世界上淡出了。
深度学习与Python
2023/12/04
2570
ChatGPT 一周年:生成式 AI 出现后,我决定以后砸锅卖铁都不让后代当程序员了
9年用480个机器人顶替近千工人,这家上海工厂做到了机器与人力双赢
在吸纳首位机器人入职的9年后,海立集团尝到了大大甜头:2015年,使用一台机器人成本不到6万元/年,使用一名工人成本近10万元/年。生产空调“心脏”—压缩机的海立集团,拥有上海最大规模之一的机器人工厂
机器人网
2018/04/23
6420
9年用480个机器人顶替近千工人,这家上海工厂做到了机器与人力双赢
三百年前的AI骗局:骗过美国总统和普鲁士大帝的国际象棋AI
人工智能的历史告诉我们:随着科技的进步,机器会越来越聪明,但却鲜少涉及人类在其中发挥的重要作用,包括怎么设计机器的原型,以及怎么训练它等等。
大数据文摘
2019/05/14
1.4K0
三百年前的AI骗局:骗过美国总统和普鲁士大帝的国际象棋AI
CMU的AI赢了扑克,但这远远称不上机器智能的胜利(附技术论文)
【新智元导读】CMU的AI“Libratus”以绝对的优势在单挑无限德州扑克中赢得了人家职业玩家,这无疑是AI发展史上的一座里程碑,就像日前谷歌CEO Brin 在达沃斯论坛上表示的那样,AI发展如此
新智元
2018/03/27
6730
CMU的AI赢了扑克,但这远远称不上机器智能的胜利(附技术论文)
【应用】人工智能的未来在于各行各业的深度应用
小编邀请您,先思考: 人工智能对您所在行业有影响吗?如何影响? 如何利用好人工智能? 在世界智能制造大会现场,凯文·凯利发表了主旨演讲。在接近一个小时的演讲里,畅谈了他对未来25年重要的科技趋势的看法。 在这一个小时的未来趋势分析里面,人工智能成了重头戏,占去了将近30分钟的时间。实际上,从今年AlphaGo战胜人类顶尖围棋选手李世石至今,人工智能虽然大火,但这项技术早已融入我们的日常生活而不被发觉。 “我来中国坐的飞机大部分时间是由人工智能系统,而不是飞行员在控制。”凯文·凯利用了身边发生的事情解释。他
陆勤_数据人网
2018/02/26
8780
翻译 | 深度学习机器72小时自学国际象棋达到大师水平
本文在腾讯云+社区人工智能专栏首发, 为原创翻译文章. 文章正文部分以引用格式给出原文 导读 英文原文发布于2015年9月, 当时 Google 旗下 DeepMind公司 的 AlphaGo(即 阿尔法围棋)尚未战胜人类的职业围棋选手. 今天, 我们已经知道旧版战胜李世石和柯洁的 AlphaGo(包括后来的 AlphaGoMaster)都以深度学习作为技术基础, 而新版的 AlphaGoZero是在没有人类知识的条件下以神经网络为技术基础自学成才的机器. 本文介绍的下棋机器原理与Alpha Go相似
benny
2018/03/06
1.1K0
翻译 | 深度学习机器72小时自学国际象棋达到大师水平
【大咖说】“预言帝”凯文·凯利:人工智能早已来临,只是你没有感受到
上周的世界智能制造大会上,在全球互联网行业都颇负盛名的“预言帝”凯文·凯利又开尊口,面向未来25年,对人工智能、虚拟现实以及智能制造等当下热门科技/工业话题畅谈了他的看法。比起预言,小编更倾向于将这番演讲看作是畅想和漫谈,因为去除了“预言”的玄学外衣,或许他对于科技趋势的研判才更显得权威和靠谱。 “想象一下,山谷里飘来一阵雨,每一个雨滴的路径是不可预测的,但是他们运动的方向是可以预测的,都是向下的。”由此可见,大咖本人也确实是本着实事求是的态度来对话的,这样可以避免日后陷入“找后账”的麻烦。然而话又说回来
钱塘数据
2018/03/02
7510
【大咖说】“预言帝”凯文·凯利:人工智能早已来临,只是你没有感受到
【中国战队包揽234却无缘冠军】OpenAI 的 Dota2 机器人强在哪?
【新智元导读】DOTA2 经典赛事TI7国际邀请赛决出最后冠军,中国团队虽占据234名但无缘冠军。回顾本届比赛,Open AI 的机器人因为战胜了人类玩家而大放异彩,团队也在Twitter上宣布欢迎更多玩家挑战和试用自己的技术。本文带来深度解读,战胜了人类玩家的Open AI 机器人究竟强在哪里?与围棋比赛中的AlphaGo相比是强还是弱?未来在虚拟游戏中,人类是否对机器毫无胜算? Dota2 TI7决赛,中国战队惜败无缘冠军,包揽2、3、4名 8月13日,DOTA2 经典赛事TI7国际邀请赛在美国西雅图钥
新智元
2018/03/22
1.3K0
【中国战队包揽234却无缘冠军】OpenAI 的 Dota2 机器人强在哪?
推荐阅读
7岁男童因下棋太快?机器人竟夹断其手指
4170
国际象棋机器人夹断7岁男孩手指,原因是「棋手违反安全规则」?
4920
下棋机器人折断7岁男孩手指,网友:违反了机器人第一定律
3750
致命bug,7岁男童被夹断手指!
3420
19岁美国男孩击败国际象棋世界冠军,被指利用AI作弊!
3620
象棋机器人「弄折了」棋童的手指。。。
3150
智能肛珠作弊案反转:19岁小将告世界冠军诽谤索赔7亿
3250
猫咪机器人下国际象棋快逼疯人类,顶级棋手也只能和它打成平局
6540
深度学习机器72小时自学象棋, 达到国际大师水平
2.5K0
败给深蓝20年后,棋王卡斯帕罗夫说:智能机器不是人类的威胁
8270
13岁男孩从菜鸟到机器人大赛冠军,我被这帮小孩造的机器人惊到了!
6340
机器人的崛起将导致人类失业?经济学家并不这么看
1.1K0
ChatGPT 一周年:生成式 AI 出现后,我决定以后砸锅卖铁都不让后代当程序员了
2570
9年用480个机器人顶替近千工人,这家上海工厂做到了机器与人力双赢
6420
三百年前的AI骗局:骗过美国总统和普鲁士大帝的国际象棋AI
1.4K0
CMU的AI赢了扑克,但这远远称不上机器智能的胜利(附技术论文)
6730
【应用】人工智能的未来在于各行各业的深度应用
8780
翻译 | 深度学习机器72小时自学国际象棋达到大师水平
1.1K0
【大咖说】“预言帝”凯文·凯利:人工智能早已来临,只是你没有感受到
7510
【中国战队包揽234却无缘冠军】OpenAI 的 Dota2 机器人强在哪?
1.3K0
相关推荐
7岁男童因下棋太快?机器人竟夹断其手指
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档