首页 > 其他 > 详细

容器互联

时间:2020-11-27 14:02:06      阅读:27      评论:0      收藏:0      [点我收藏+]

docker0问题:不支持容器名互相连接访问!

查看所有的docker网络

docker network ls

技术分享图片

网络模式

bridge:桥接docker默认,自定义的网络也使用bridge模式。

none:不配置网络。

host:和宿主机共享网络。

container:容器内网络连通!用的少!局限很大!

docker network帮助信息

[root@localhost ~]# docker network --help

Usage:	docker network COMMAND

Manage networks

Commands:
  connect     Connect a container to a network
  create      Create a network
  disconnect  Disconnect a container from a network
  inspect     Display detailed information on one or more networks
  ls          List networks
  prune       Remove all unused networks
  rm          Remove one or more networks

技术分享图片

测试自定义网络

删除所有容器,保证干净环境。

docker rm -f $(docker ps -a -q)

技术分享图片
回到最初的3个网卡
技术分享图片
之前直接启动的的命令

docker run -d -P --name tomcat01 tomcat
#直接启动的容器默认是docker0网络,其实默认省略了--net bridge参数

docker0特点,默认域名不能访问,--link需要互相打通才能相互通信,不建议使用。

自定义网络

技术分享图片
再查看docker network create --help帮助信息

docker network create --help

技术分享图片
创建一个自定义网络

--driver bridge #默认为桥接,可不写

--subnet 192.168.0.0/16 #子网

--gateway 192.168.0.1 #路由

docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 nettest

技术分享图片
查看创建的网络

docker network ls

技术分享图片
查看创建网络的详细信息

docker network inspect nettest

技术分享图片
到此自己的网络就创建好了。

容器走自定义网络

测试启动2个容器

docker run -d -P --name tomcat-net-01 --net nettest tomcat
docker run -d -P --name tomcat-net-02 --net nettest tomcat

技术分享图片
再次查看自定义网络的详细信息

docker network inspect nettest

技术分享图片
此时自定义网络下面就有了我们的容器信息。

测试域名ping

docker exec -it tomcat-net-01 ping 192.168.0.3
docker exec -it tomcat-net-01 ping tomcat-net-02

技术分享图片
技术分享图片
此时用容器的名称可以互相Ping通了。

自定义的网络修复了docker0的缺陷。

网络间通信

网络联通,使2张网下的容器也可以互相通信。

启动2个容器,不指定网络。测试2个网络下是否可以互通。

docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat02 tomcat

#测试
docker exec -it tomcat01 ping tomcat-net-01

技术分享图片
如何打通docker0和自定义的网络?

网络之间如何互相打通?

连接1个容器到1个网络

docker network --help

技术分享图片
查看帮助信息

docker network connect --help

技术分享图片
测试打通,查看详细信息

docker network connect nettest tomcat01

技术分享图片
查看详细信息,连通后发生了什么?

docker network inspect nettest

技术分享图片
连通之后就将tomcat01放到了nettest网络下?

测试通信
技术分享图片
官方:1个容器2个IP

方法:容器和网络打通解决2张网络下容器通信。

测试tomcat02

tomcat02与自定义网络nettest没有打通,所以无法ping通。
技术分享图片
结论:假设要跨网络通信,就需要使用docker network connect打通!

容器互联

原文:https://www.cnblogs.com/lwenwu/p/14047247.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!