竹子开花的时 发表于 2019-2-20 09:48:21

docker设置不同网络和迁移到指定网络

Libnetwork官方示例
  我们初步了解了libnetwork中各个组件和驱动后,为了能深入的理解libnetwork中的CNM模型和熟悉docker network子命令的使用,我们来通过libnetwork官方github上的示例进行验证一下,如下图所示:
http://i2.运维网.com/images/blog/201812/10/ae005a3bb825a8951bdc3c3eb9d838b3.png
  在上图示例中,使用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网络:

root@centos-mysql01:~# 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不在一个网络中,所以两个容器之间不能连通:
http://i2.运维网.com/images/blog/201812/10/68b0eb0d3f3468f4b9c8cf2d0dc8ef51.png

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 backendc1
  发现现在ip地址是通的了



页: [1]
查看完整版本: docker设置不同网络和迁移到指定网络