docker设置不同网络和迁移到指定网络
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker设置不同网络和迁移到指定网络相关的知识,希望对你有一定的参考价值。
Libnetwork官方示例
我们初步了解了libnetwork中各个组件和驱动后,为了能深入的理解libnetwork中的CNM模型和熟悉docker network子命令的使用,我们来通过libnetwork官方github上的示例进行验证一下,如下图所示:
在上图示例中,使用Docker 默认的bridge驱动进行演示。在此例中,会在Docker上组成一个网络拓扑的应用:
它有两个网络,其中backend network为后端网络,frontend network则为前端网络,两个网络互不联通。(这两个网络呆会儿演示的时候会创建出来)
其中容器1和容器3各拥有一个端点,并且分别加入后端网络(backend network)和前端网络(frontend network)中。而容器2则有两个端点,它们分别加入到后端网络和前端网络。
1、通过以下命令分别创建名为backend、frontend两个网络:
docker network create backend
docker network create frontend
2、使用docker network ls 可以查看这台主机上的所有Docker网络:
[email protected]:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
4bb7db8603b3 backend bridge local
89eecd0d67f8 bridge bridge local
4f90775dde19 frontend bridge local
68a185af2068 host host local
7121b3b8e5e9 none null local
除了刚才创建的backend和frontend之外,还有3个网络。这3个网络是Docker daemon默认创建的,分别使用了3种不同的驱动,而这3种驱动则对应了Docker原来的3种网络模式。需要注意的是,3种内置的默认网络是无法使用docker network rm进行删除的,不信你们试一下。
3、接下来创建3个容器,并使用下面的命令将名为c1和c2的容器加入到backend网络中,将名为c3的容器加入到frontend网络中:
docker run -itd --name c3 --net backend centos
docker run -itd --name c2 --net backend centos
docker run -itd --name c1 --net frontend centos
然后,分别进入c1和c3容器使用ping命令测试其与c2的连通性,因为c2和c3都在backend网络中,所以两者可以连通。但是,因为c2和c1不在一个网络中,所以两个容器之间不能连通:
docker exec -it c2 /bin/bash
# yum install -y net-tools #安装网络工具包
# ping c1 #处于frontend 不通
# ping c2 #处于backend 通
# ping c3 #处于backend 通
使用如下命令将c2容器加入到backend网络中
# docker network connect backend c1
发现现在ip地址是通的了
以上是关于docker设置不同网络和迁移到指定网络的主要内容,如果未能解决你的问题,请参考以下文章