docker network命令详解


当前第2页 返回上一页

在默认网络中使用link(legency link),有如下功能:

1

2

3

4

- 使用容器名作为hostname

- link容器时指定alias: --link=<Container-Name>:<Alias>

- 配合--icc=false隔离性,实现容器间的安全连接

- 环境变量注入

自定义网络中使用docker net提供如下功能:

1

2

3

4

- 使用DNS实现自动化的名称解析

- 一个网络提供容器的安全隔离环境

- 动态地attach与detach到多个网络

- 支持与--link选项一起使用,为链接的容器提供别名(可以是尚不存在链接容器,与默认容器中?Clink使用的最大差别)

默认网络中的link是静态的,不允许链接容器重启,而自定义网络下的link是动态的,支持链接容器重启(以及IP变化)
因此,使用--link时链接的容器,在默认网络中必须提前创建好,而自定义网络下不必预先建好。

使用docker network connetct将容器连接到新网络中时,用参数--link链接相同的容器时,可以指定不同的别名,它们是针对不同网络的。

1

2

3

4

5

6

7

# 运行容器使用自定义网络,同时使用--link链接尚不存在的container5容器

docker run --net=mynet -itd --name=container4 --link container5:c5 busybox

# 创建容器container5

docker run --net=mynet -itd --name=container5 --link container4:c4 busybox

# 虽然是相同容器,但是在不同的网络环境连接中可以不同的alias链接

docker network connect --link container5:foo local_alias container4

docker network connect --link container4:bar local_alias container5

五、指定容器在网络范围的别名(Network-scoped alias)

Network-scoped alias就是指定容器在可被同一网络范围内的其他容器访问的别名。

不同于link别名的是,link别名是由链接容器的使用者提供的,只有它自己可使用; 而指定网络范围内别名,是由容器提供给网络中其它容器使用的。

Network-scoped alias:同一网络中的多个容器可以指定相同的别名,在使用的当然只有第一个指定别名的容器才生效,
只有当第一个容器关闭时,指定相同别名的第二个容器的别名才会开始生效。

1

2

3

4

5

6

7

8

9

10

11

docker run --net=mynet -itd --name=container6 --net-alias app busybox

docker network connect --alias scoped-app local_alias container6

docker run --net=isolated_nw -itd --name=container7 --net-alias app busybox

docker network connect --alias scoped-app local_alias container7

# 在container4中

docker attach container4

ping app # 访问container6的IP

# 从container4中以守护进程运行退出:Ctrl+P+Q

docker stop container6

docker attach container4

ping app # 访问的container7的IP

六、断开网络与移除网络

1

2

3

4

5

# 容器从mynet网络中断开(它将无法再网络中的容器container3通讯)

docker network disconnect mynet container2

# 测试与容器container3失败

docker attach container2

ping contianer3 # 访问失败

在多主机的网络环境中,在将容器用已移除的容器名称连接到网络中时会出现container already connected to network的错误,
这时需要将新容器强制移除docker rm -f,重新运行并连接到网络中。

移除网络要求网络中所有的容器关闭或断开与此网络的连接时,才能够使用移除命令:

1

2

3

4

# 断开最后一个连接到mynet网络的容器

docker network disconnet mynet container3

# 移除网络

docker network rm mynet

以上就是docker network命令详解的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

linux下怎么卸载Docker

Docker安装之后配置文件在哪

如何修改Docker镜像仓库

查看Docker的运行状态使用什么命令

linux查看Docker是否已经安装的方法

Docker 核心是什么?

k8s 安装部署步骤

Docker怎么查看容器ip地址?

Docker支持gpu么

Docker连不上网页怎么办?

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



打赏

取消

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

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

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

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

评论

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