一、单向连接
(1)利用-link可以实现单向互联
(2)示例
①、创建一个容器
②、 验证
tomcat2可以ping通tomcat1
tomcat1不可以ping通tomcat2
由此可得--link 只可以实现单项连接
③、查看配置
docker inspect tomcat2
二、双向互联
默认的Docker网络驱动有如下可以使用:
- bridge(桥接)
桥接网络是一种用户自定义的网络,它允许所有连接到同一个网络的容器进行通信。好处在于:相同的bridge网络上的容器能够互相连接,发现通信,而未处于相同桥接上的那些容器则不能直接进行相互通信。当运行在同一台宿主机的容器需要互相通信时,bridge网络就可以实现。安装并启动docker时,就会默认创建一个bridge网络,但更好的做法是自己动手创建一个bridge网络(更好的跨容器隔离,新建一个网络,类似于VPC;简单的跨容器名称解析,使用bridge,容器可以通过名称彼此连接;用户自定义网络上简单的容器附加/分离)。
- host (主机)
使用host网络,容器就会被附加到Docker宿主机上。即,所有通向该宿主机的流量将会被路由到容器。此模式中,发布端口就没有意义了。如果Docker宿主机上仅运行一个容器,那么host主机模式就完美适用。
- overlay(覆盖)
overlay网络会创建一个跨多个Docker宿主机的网络。它会覆盖现有的主机网络,从而允许连接到该网络的容器进行跨多个主机的通信。主要用于Swarm模式设置的Docker宿主机集群。它还允许对整个网络中的应用程序数据
流进行加密。
- macvlan(mac虚拟网)
该网络利用了Linux内核的能力,根据MAC将多个逻辑地址分配到单个物理接口。这意味着,可将一个MAC地址分配给容器的虚拟网络接口,从而让容器表现为使用了网络接口来连接网络。
- none(无)
该网络就是容器不连接到任何网络接口,并且不接受任何网络流量。此网络只会创建回环接口,从而允许容器与自己通信,不允许外部或者与其他容器通信。
网络的范围有三种:
- 本地(local)本地类型指的是网络被限制在所在的计算机上。
- 全局(global)全局类型时指在集群的每个节点上都创建网络,但是不在节点之间转发消息
- 集群(swarm)网络无缝的跨接Docker集群中的所有主机。
(2)示例
①、查看docker中目前已有的网络
②、创建一个新的网络
③、利用创建的网络启动两个新的容器
④、验证
目前centos01可以ping通centos02
目前centos02可以ping通centos01
此时两个容器可以互通。
⑤、查看网络配置与容器配置
1、网络配置
命令如下:[root@lab01 ~]# docker network inspect network
2、centos01配置
[root@lab01 ~]# docker inspect centos01
3、centos02配置
[root@lab01 ~]# docker inspect centos02
⑥、将容器连接到命名的桥接网络
docker network connect <network name> <container name>
⑦、将容器从某个网络中移除
docker network disconnect <network name> <container name>