docker network命令详解


本文摘自PHP中文网,作者V,侵删。

我们先来看看network所有的子命令:

(推荐教程:docker教程)

1

2

3

4

5

6

docker network create

docker network connect

docker network ls

docker network rm

docker network disconnect

docker network inspect

一、创建网络

在安装Docker Engine时会自动创建一个默认的bridge网络docker0。 此外,还可以创建自己的bridge网络或overlay网络。

bridge网络依附于运行Docker Engine的单台主机上,而overlay网络能够覆盖运行各自Docker Engine的多主机环境中。

创建bridge网络比较简单如下:

1

2

3

4

5

# 不指定网络驱动时默认创建的bridge网络

docker network create simple-network

# 查看网络内部信息

docker network inspect simple-network

# 应用到容器时,可进入容器内部使用ifconfig查看容器的网络详情

但是创建一个overlay网络就需要一些前提条件(具体操作请参考Docker容器网络相关内容):

1

2

3

4

5

6

- key-value store(Engine支持Consul、Etcd和ZooKeeper等分布式存储的key-value store)

- 集群中所有主机已经连接到key-value store

- swarm集群中每个主机都配置了下面的daemon参数

- ?Ccluster-store

- ?Ccluster-store-opt

- ?Ccluster-advertise

然后创建overlay网络:

1

2

# 创建网络时,使用参数`-d`指定驱动类型为overlay

docker network create -d overlay my-multihost-network

就使用--subnet选项创建子网而言,bridge网络只能指定一个子网,而overlay网络支持多个子网。

在bridge和overlay网络驱动下创建的网络可以指定不同的参数。

二、连接容器

创建三个容器,分别前两个使用默认网络启动容器,第三个使用自定义bridge网络启动。 然后再将第二个容器添加到自定义网络。这三个容器的网络情况如下:

第一个容器:只有默认的docker0

第二个容器:属于两个网络――docker0、自定义网络

第三个容器:只属于自定义网络

说明:通过容器启动指定的网络会覆盖默认bridge网络docker0。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

# 创建三个容器 conTainer1,container2,container3

docker run -itd --name=container1 busybox

docker run -itd --name=container2 busybox

# 创建网络mynet

docker network create -d bridge --subnet 172.25.0.0/16 mynet

# 将容器containerr2连接到新建网络mynet

docker network connect mynet container2

# 使用mynet网络来容器container3

docker run --net=mynet --ip=172.25.3.3 -itd --name=container3 busybox

  

# 查看这三个容器的网络情况

docker network inspect container1 # docker0

docker network inspect container2 # docker0, mynet

docker network inspect container3 # mynet

三、默认网络与自定义bridge网络的差异

默认网络docker0:网络中所有主机间只能用IP相互访问。通过--link选项创建的容器可以对链接的容器名(container-name)作为hostname进行直接访问。

自定义网络(bridge):网络中所有主机除ip访问外,还可以直接用容器名(container-name)作为hostname相互访问。

1

2

3

4

5

6

# 进入container2内部

docker attach container2

ping -w 4 container3 # 可访问

ping -w 4 container1 # 不可访问

ping -w 4 172.17.0.2 # 可访问container1的IP

# Ctrl+P+Q退出容器,让container2以守护进程运行

四、默认网络与自定义bridge网络在容器连接的差别

阅读剩余部分

相关阅读 >>

如何通过命令行查看Docker服务是否已启动

如何解决在centos中安装Docker失败

如何删除Docker中的容器

Docker怎么更改镜像仓库

如何查看Docker中mysql的版本

win7怎么安装Docker

如何查看一个Docker镜像有哪些版本

Docker的主要特性有哪些

Docker服务启动失败怎么办

Docker手动添加网桥方法详解

更多相关阅读请进入《Docker》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...