龙空技术网

Docker-composer之Network使用

氵毎羊誩 217

前言:

目前同学们对“添加network”大概比较看重,我们都需要知道一些“添加network”的相关资讯。那么小编同时在网摘上收集了一些对于“添加network””的相关资讯,希望朋友们能喜欢,咱们一起来学习一下吧!

一般对于集群服务,常常通过docker-compose.yml文档快速编排、部署应用服务。

官网中给出了如下的使用场景和方式:

1. 未显式声明网络环境的docker-compose.yml

例如,在目录test下创建docker-compose.yml,内容如下:

version: '2'services:  centos-ssh:    image: centos

使用docker-compose up启动容器后,这些容器都会被加入test_default网络中。

使用docker network ls可以查看网络列表,docker network inspect <container id>可以查看对应网络的配置。

2. networks关键字指定自定义网络

例如下面的docker-compose.yml文件,定义了testNet网络,其中,bridge可以替换为host, bridge, overlay等选项中的一种。

version: '2'services:  centos-ssh:    image: centos    networks:        - testNetnetworks:    testNet:        driver: bridge

这里testNet可以见多个,对不同的service进行网络隔离访问。例如:

version: '2'services:  a:    image: centos    networks:        - AA   b:    image: centos    networks:        - AA        - BB   c:    image: centos    networks:        - BBnetworks:    AA:        driver: bridge   BB:        driver: bridge

其中【a服务】和【c服务】之间只能通过【b服务】来实现通信。

值得注意的是,这里定义了AA和BB两个网络,似乎它们的名字就定义成了AA和BB,但是你使用docker network ls命令并不能找到它们。假如你是在test目录下运行的docker-compose up命令,那么这两个网络应该分别对应test_AAtest_BB

3. 配置默认网络

version: '2'services:  centos-ssh:    image: centos    networks:        - testNetnetworks:    default:        driver: bridge

4. 使用已存在的网络

version: '2'services:  centos-ssh:    image: centos    networks:        - testNetnetworks:    default:        external:               name: test

此种方式需要先行解决创建网络 docker network create test

对应的删除网络 docker network rm test

使用networks的要点在于:

1. 注意自定义网络的方式

2. 注意docker-compose.yml文件的位置与网络默认命名的关系

3. 注意遇到问题尝试几种替代方式去解决

标签: #添加network