阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

关于Docker容器互联的初步实践

228次阅读
没有评论

共计 1868 个字符,预计需要花费 5 分钟才能阅读完成。

一、Docker 容器之间的互联

Docker 现在已经成为一种轻量级的虚拟化方案,在同一宿主机下,所有的容器都可以通过网桥进行互联。如果之前有 docker 的使用经验,可能已经习惯了使用–link 来对容器进行互联。随着 docker 的逐步完善,强烈推荐大家使用网桥(bridge)来对容器进行互联。

二、实践过程

1. 创建一个网络 my-net:

[root@linuxidc ~]# docker network create my-net
71b42506de62797889372ea4a5270f905f79a19cf80e308119c02e529b89c94e
[root@linuxidc ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3dec5cbb852e        bridge              bridge              local
6dd6dcfc2f26        host                host                local
71b42506de62        my-net              bridge              local
4c142a02cd6b        none                null                local

2. 在创建 docker 容器的时候就指定桥接网络:

[root@linuxidc docker]# docker create -it –name d1 –network my-net -p 8080:80 Ubuntu:14.04
4776b65db566f370cad5da3a9354a12c7e4f9badab53647b7e30e1e8f343ae3d
[root@linuxidc docker]# docker start d1
d1

在该命令中,docker create 也可以用 docker container create,二者等价。–name 指定了容器的名称,–network 指定了该容器的网络名称,桥接形式默认为网桥,- p 或–publish 指定了映射的端口。如果在这一步指定的网络没有预先被创建,那么这个容器时无法正常启动的。此时,可以为该容器创建网络后再次启动容器即可。

3. 还可以在运行一个 docker 容器的时候指定一个已经创建好的网络:

[root@linuxidc docker]# docker run -it –name d2 –network my-net –publish 8081:80 ubuntu:14.04 /bin/bash
root@07fd516911d0:/# ping d1
PING d1 (172.18.0.2) 56(84) bytes of data.
64 bytes from d1.my-net (172.18.0.2): icmp_seq=1 ttl=64 time=0.115 ms
root@4776b65db566:/# ping d2
PING d2 (172.18.0.3) 56(84) bytes of data.
64 bytes from d2.my-net (172.18.0.3): icmp_seq=1 ttl=64 time=0.062 ms

通过容器名称即可 ping 通在同一网桥的容器。也可以直接 ping 其 IP。

三、总结

1. 在 docker 安装完成之后,docker 容器有三个网络,如下:

[root@linuxidc ~]# docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
3dec5cbb852e        bridge              bridge              local
6dd6dcfc2f26        host                host                local
4c142a02cd6b        none                null                local

2. 在同一网络中的所有容器网络都是互通的。
3. 容器的网络配置中的 dns 配置可以在主机的 /etc/docker/daemon.json 文件进行配置,参照官方格式:

{
  “bip”: “192.168.1.5/24”,
  “fixed-cidr”: “192.168.1.5/25”,
  “fixed-cidr-v6”: “2001:db8::/64”,
  “mtu”: 1500,
  “default-gateway”: “10.20.1.1”,
  “default-gateway-v6”: “2001:db8:abcd::89”,
  “dns”: [“10.20.1.2″,”10.20.1.3”]
}

根据实际情况进行配置即可。

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计1868字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中