前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker容器间网络如何互联

Docker容器间网络如何互联

作者头像
dys
发布2018-04-02 16:18:25
1.4K0
发布2018-04-02 16:18:25
举报
文章被收录于专栏:性能与架构性能与架构

1. 通过IP互联

容器带有虚拟网桥,可以有自己的ip,容器间就可以通过ip进行互相通信

启动两个容器

分别ssh登陆,ifconfig查看自己的ip,例如分别为:

192.168.42.4

192.168.42.5

在 .5 中 ping 192.168.42.4

正常 ping 通,说明这两个容器间的网络沟通没有问题

但有一个新的问题,在容器重启后,他的ip会变,这样的话,容器间使用ip来互相沟通,这时就出现了问题

如何解决?

2. 通过容器名称互联

Docker提供了别名连接方式,让容器间的网络沟通不依赖于ip

先看下指定容器名称的命令

docker run -d -p 22 --name net001 dys/centos:ssh

--name net001 这个参数就给当前容器起了名字:net001

以后就可以直接使用 net001 来做各种操作,例如:

docker stop net001

docker start net001

即使重启docker服务,这个名字不会丢失

service docker restart

docker start net001

再启动一个容器,用参数指定连接 net001

docker run -d -p 22 --name net002 --link net001:lk001 dys/centos:ssh

--link 参数的格式为: --link name:alias,其中 name 是要链接的容器的名称,alias 是这个连接的别名

ssh登陆net002,测试连接 net001

ping net001

可以看到连接成功,这样我们就不怕连接目标容器的ip变化了

Docker做了什么?

查看 net002 的 host文件

cat /etc/hosts

可以看到,多了一行配置信息

192.168.42.4 lk001 4193f1ac3f78 net001

net002 中就是通过这条配置找到 net001 的,net001的ip变化时,Docker会自动修改net002 中的这条配置

这样就实现了容器间通过名称来稳定的互相沟通

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档