一 Docker网络管理

1 Docker默认网络管理

1.1 在进行docker安装时,自动创建三种网络,可以通过网络管理命令查看

docker swarm 网络分区 docker swarm network_自定义


1.2 下面通过一个示例来演示默认的bridge网络管理方式,过程如下

(1)创建并启动容器

docker swarm 网络分区 docker swarm network_自定义_02


(2)使用网络查看指令查看网络详情

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_03


2 自定义bridge网络

2.1 创建自定义网络,在Docker主机上使用docker network create指令来创建网络

docker swarm 网络分区 docker swarm network_Docker_04


2.2 使用自定义网络启动容器,上面创建成功后,就可以使用该网络启动一个容器,指令如下

docker swarm 网络分区 docker swarm network_docker_05

使用docker inspect nwtest查看

docker swarm 网络分区 docker swarm network_自定义_06

2.3 为容器添加网络管理,操作指令如下

docker swarm 网络分区 docker swarm network_自定义_07


docker swarm 网络分区 docker swarm network_docker_08

2.4 断开容器网络连接,并且移除网络指令如下

docker swarm 网络分区 docker swarm network_自定义_09


3 容器之间的网络通信

3.1 创建容器

(1)创建两个使用默认的bridge网络的容器指令如下

docker swarm 网络分区 docker swarm network_Docker_10


(2)创建一个使用自定义的isolated_nw网络的容器

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_11


(3)为container2容器新增一个自定义的isolated_nw网络连接,指令如下

$docker network connect isolated_nw container2

3.2 容器地址查看

(1)进入container2容器

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_12


(2)然后分别进入container1,container4容器,两个容器地址分别用红框标出如下

docker swarm 网络分区 docker swarm network_自定义_13


docker swarm 网络分区 docker swarm network_Docker_14


(3)容器通信测试

docker swarm 网络分区 docker swarm network_自定义_15

docker swarm 网络分区 docker swarm network_自定义_16

docker swarm 网络分区 docker swarm network_docker_17


二 Docker Swarm集群

环境搭建

(1)准备3台Ubuntu系统主机

(2)集群管理节点Docker机器的IP地址必须固定,集群中所有节点都能访问该管理节点

(3)集群节点之间必须使用相应的协议并保证其以下端口号可用:

用于集群管理通信的TCP端口2377
    TCP和UDP端口7946,用于节点间的通信
    UDP端口4789, 用于覆盖网络流量

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_18


1 创建Docker Swarm集群(1)在名为manager1的Docker机器上创建Docker Swarm集群

docker swarm 网络分区 docker swarm network_docker_19

(2)在管理节点,使用docker node ls 查看集群节点信息

docker swarm 网络分区 docker swarm network_自定义_20

2 向Docker Swarm集群添加工作节点

(1)启动worker1和worker2执行向集群加入工作节点的指定

docker swarm 网络分区 docker swarm network_自定义_21

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_22


(2)在管理节点,使用docker node ls 指令查看集群节点信息

docker swarm 网络分区 docker swarm network_自定义_23

3 向Docker Swarm集群部署服务(1) 拉取alpine镜像

docker swarm 网络分区 docker swarm network_Docker_24


(2)部署集群服务

docker swarm 网络分区 docker swarm network_自定义_25

4 查看Docker Swarm集群中的服务(1)当服务部署完成后,使用docker service ls查看集群中的服务列表信息

docker swarm 网络分区 docker swarm network_Docker_26

(2)使用docker service inspect查看部署的服务具体详情

docker swarm 网络分区 docker swarm network_docker_27


(3)使用docker service ps 查看指定服务在集群节点上分配和运行情况

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_28

5 更改Docker Swarm集群服务副本数量

docker swarm 网络分区 docker swarm network_Docker_29

docker swarm 网络分区 docker swarm network_自定义_30

6 删除服务

docker swarm 网络分区 docker swarm network_docker_31


7 访问服务

(1)在管理节点上查看网络列表

docker swarm 网络分区 docker swarm network_docker_32


(2)在管理节点上,创建以overlay为驱动的自定义网络

docker swarm 网络分区 docker swarm network_自定义_33

(3)在管理节点上再次部署任务

docker swarm 网络分区 docker swarm network_Docker_34


(4)在管理节点上使用docker service ps my-web查看服务的两个副本运行情况

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_35

(5)外界访问

docker swarm 网络分区 docker swarm network_docker swarm 网络分区_36