Docker中的网络与数据管理

Docker网络管理

Docker默认使用bridge(单主机互联)和overly(可跨主机互联)两种网络驱动来进行容器的网络管理。

Docker默认网络管理

在进行Docker安装时,Docker就会自动创建三种网络。客户端可以通过网络管理指令进行查看
在这里插入图片描述

从上图中可以看出,Docker中默认的三种网络分别为bridge、host、none,其中名为bridge的网络就是默认的bridge驱动网络,也是容器创建时默认的网络管理方式,配置后可以与宿主机通信从而实现与互联网通信功能,而host和none属于无网络,容器添加到这两个网络时不能与外界网络通信。

下面通过一个示例来演示默认的bridge网络管理方式:
(1)创建并启动容器
在这里插入图片描述
在后台启动了一个镜像名称为Ubuntu的容器,并为启动后的容器命名为networktest。
(2)使用网络查看指令查看网络详情
在这里插入图片描述在这里插入图片描述需要注意,这里介绍的三种网络bridge、host、none都是在非集群环境下Docker提供的默认网络,而在Docker Swarm集群环境下,除了这三种默认网络外,Docker还提供了docker_gwbridge和ingress两种默认网络。

自定义网络网络介绍

在Docker中,可以自定义bridge网络、overly网络,也可以创建network plugin(网络插件)或者远程网络以实现容器网络的完全定制和控制。分别介绍几种自定义网络。
1.Bridge networks(桥接网络)
2.Overlay network in swarm mode(Swarm集群中的覆盖网络)
3.Custom network plugins(定制网络插件)

自定义bridge网络

(1)创建自定义网络
在Docker主机上创建网络
在这里插入图片描述
上述指令可以创建一个机遇bridge驱动的名称为isolated_nw的网络。

(2)使用自定义网络启动容器
自定义网络创建成功后,就可以使用该网络启动一个容器
在这里插入图片描述
上述指令会创建一个名为nwtest的容器,该容器的网络连接为自定义的isolated_nw;
查看启动后的容器网络详情。
在这里插入图片描述
在这里插入图片描述
(3)为容器添加网络管理
我们还可以为名为nwtest的容器添加其他网络管理方式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述从上图可以看出,容器nwtest拥有了两种网络管理方式,分别为默认的bridge网络和自定义的isolated_nw网络。
(4)断开容器网络连接
在这里插入图片描述
(5)移除自定义网络
在这里插入图片描述

容器之间的网络通信

1.创建容器
(1)创建两个使用默认的bridge网络的容器
在这里插入图片描述
上述指令创建了两个名为container1和container2的容器,同时他们都是使用默认的bridge进行网络管理。
(2)创建一个使用自定义的isolated_nw网络(需要预先创建)的容器
在这里插入图片描述
创建一个名为container3的容器,指定该容器的网络管理为自定义的isolated_nw。
(3)为container2容器新增一个自定义的isolated_nw网络连接
在这里插入图片描述
container2容器同时拥有了bridge和isolated_nw两种网络管理方式。
执行昂前面三个步骤后,container1和container2在同一个默认的bridge网络管理下,这两个容器可以相互通信;而container2又和container3在同一个自定义的isolated-nw网络管理下,这两个容器也可以互相通信;但container1和container3属于不同的网络环境,所以这两个容器无法进行通信。
2.容器地址查看
先查看各个容器的网络地址
首先进入container2容器,使用ifconfig查看当前容器被动态分配的IP地址
在这里插入图片描述
分别进入容器container1和container3,并通过ifconfig指令查看对应容器的IP地址
在这里插入图片描述
在这里插入图片描述
3.容器通信测试
首先进入container1容器内部,使用ping指令连接container3来查看是否能够通信
在这里插入图片描述
接着进入container2容器内部,使用容器IP分别连接container1和container3进行通信测试
在这里插入图片描述

通过前面的测试,可以得出一个结论:不同容器之间想要相互通信必须在同一个网络环境下;使用默认bridge网络管理的容器可以使用容器IP进行通信,但无法使用容器名称进行通信;而使用自定义网络管理的容器则同时可以使用容器IP和容器名称进行通信。
tips:当进入容器内部后,可以在终端使用exit命令或者使用快捷键Ctrl+p+q组合键退出当前容器,只不过在使用exit退出容器后,该容器就会停止运行,而使用Ctrl+p+q组合键退出当前容器后,该容器会持续运行。

Docker Swarm集群

Docker Swarm概述

Docker Swarm是一个用于创建和管理Docker集群的工具。
Docker Swarm集群的主要特点:
1.方便创建和管理集群
2.可扩展
3.可实现期望的状态调节
4.集群中多主机网络自动扩展管理
5.提供服务发现功能
6.可实现负载均衡
7.安全性强
8.支持延迟更新和服务回滚

Docker Swarm使用

1.环境搭建
(1)准备3台Ubuntu系统主机(即用与搭建集群的3个Docker机器),每台机器上都需要安装Docker并且可以连接网络,同时要求Docker版本都必须是1,12及以上,因为老版本不支持Docker Swarm。
(2)集群管理节点Docker机器的IP地址必须固定,集群中的所有节点都能够访问该管理节点。
在这里插入图片描述
manager1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
worker1
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
worker2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)集群节点之间必须使用相应的协议并保证其以下端口号可用:
用于集群管理通信的TCP端口2377;
TCP和UDP端口7946,用于节点间的通信;
UDP端口4789,用于覆盖网络流量。
要求在虚拟机中分别安装了3 台使用Ubuntu16.04系统的机器,这三台机器的主机名称分别为manager1(作为管理节点)、worker1(作为工作节点)和worker2(作为工作节点)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.创建Docker Swarm集群
(1)在名在manager1的Docker机器上创建Docker Swarm集群
在这里插入图片描述
(2)在管理节点上,使用docker node ls指令查看集群节点信息
在这里插入图片描述
3.向Docker Swarm 集群添加工作节点
(1)启动另外两台Docker机器worker1和worker2,分别打开终端窗口,执行向集群中加入工作节点的指令
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述(2)在次在集群管理节点上使用docker node ls指令查看集群节点信息
在这里插入图片描述
4.向Docker Swarm集群部署服务
使用Docker Hub上自带的aipine镜像为例来部署集群服务
在这里插入图片描述5.查看Docker Swarm 集群中服务
(1)当服务部署完成后,在管理节点上可以通过docker service ls 指令查看当前集群中的服务列表信息
在这里插入图片描述
(2)可以使用docker service inspect指令,查看部署的服务具体详情
在这里插入图片描述
(3)可以使用docker service ps 指令查看指定服务在集群节点上的分配和运行情况
在这里插入图片描述
6.更改Docker Swarm集群服务副本数量
在管理节点manager1上,更改服务副本数量指令
在这里插入图片描述
在这里插入图片描述
7.删除服务
在这里插入图片描述
8.访问服务
(1)集群管理节点manager1上执行docker network ls 指令查看网络列表
在这里插入图片描述
(2)在集群管理节点manager1上,创建以overly为驱动的自定义网络
在这里插入图片描述
(3)在集群管理节点manager1上,再次部署服务
在这里插入图片描述
(4)在集群管理节点manager1上,使用docker service ps my-web指令查看服务的两个服务副本运行情况
在这里插入图片描述
(5)外界访问服务
打开浏览器,使用任意一台节点机器的“IP+8080”端口进行服务访问,都可以正常显示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据卷管理

Volume数据卷使用

1.创建并管理数据卷
(1)创建数据卷
在这里插入图片描述
(2)查看数据卷
在这里插入图片描述
(3)核查数据卷
在这里插入图片描述
(4)删除数据卷
在这里插入图片描述
2.启动容器并加载数据卷
(1)查看本机容器和数据卷
在这里插入图片描述
在这里插入图片描述(2)确认查看本机Docker文件系统中的容器和数据卷
首先在Docker主机终端中将普通用户切换到root用户,然后进入“/var/lib/docker”目录,即Docker默认在本机上的文件系统目录,查看信息
在这里插入图片描述
(3)启动容器并挂载数据卷
在这里插入图片描述

(4)再次查看本机容器和数据卷列表
在这里插入图片描述
在这里插入图片描述(5)检查容器详情
在这里插入图片描述

(6)再次确认本机Docker文件系统中的容器和数据卷

在这里插入图片描述
在这里插入图片描述
**出现问题1:**不能进入容器内部
**解决方案1:**发现是退出容器时将容器关闭了,导致再次无法进入,输入docker start container1命令开启即可。
**出现问题2:**向Docker Swarm集群添加工作节点时出现错误
在这里插入图片描述
**解决方案2:**根据提示发现3台虚拟机之间无法连接,查询之后可以ping通baidu.com,但3台主机之间无法ping通,配置也没问题。最终发现克隆虚拟机之后网络连接方式自动变成了桥接模式,改为NAT模式即可解决。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值