Docker中的网络与数据管理

    xiaoxiao2022-07-02  116

    文章目录

    一:Docker 网络管理1:docker默认网络管理2:自定义网络介绍3:自定义bridge网络4:容器之间的网络通信 二:Docker Swarm集群Docker Swarm使用1:环境搭建2:创建Docker Swarm集群3:向Docker Swarm集群添加工作节点4:向Docker Swarm集群部署服务5:查看Docker Swarm集群中的服务6:更改Docker Swarm集群服务副本数量7:删除服务8:访问服务 三:Volumes数据卷管理1:Volumes数据卷使用2:启动容器并加载数据卷 四:出现的问题

    一:Docker 网络管理


    Docker默认使用bridge(单主机互联)和overlay(可跨主机互联)两种网络驱动来进行容器的网络管理。如果需要,用户还可以自定义网络驱动插件进行Docker容器的网络管理。

    1:docker默认网络管理

    在进行Docker安装时,Docker就会自动创建三种网络。客户端可以通过网络管理指令进行查看,具体操作指令如下 : (1):创建并启动容器。在终端窗口中执行如下命令: (2):使用网络查看指令查看网络详情,具体操作指令如下:

    执行上述命令后就会显示出bridge网络的所有详细信息!

    2:自定义网络介绍

    (1):Bridge networks(桥接模式) (2):Overlay network in swarm mode (Swarm集群中的覆盖网络) (3):Custom network plugins(定制网络插件)

    3:自定义bridge网络
    对非集群环境下基于bridge驱动的自定义网络进行详细讲解

    (1):创建自定义网络 在Docker主机上可以使用docker network create指令来创建网络

    创建完成后,可以使用docker network ls 指令查看创建的网络是否成功 (2):使用自定义网络启动容器 通过docker inspect nwtest指令可以查看启动后的容器网络详情,来核查其网络管理方式 (3):为容器添加网络管理 名为nwtest的容器使用只有自定义的isolated_nw一种网络管理方式,我们还可以继续为该容器添加其他网络管理方式,具体操作指令如下: 执行上述指令后,会为容器nwtest另添加一种默认的bridge网络管理方式。再次使用dockr inspect nwtest指令查看该容器网络详情。 (4):断开容器网络连接 (5):移除自定义网络

    4:容器之间的网络通信
    Docker中的不同容器之间需要通过网络来进行通信,那么各个容器之间具体是如何实现通信的呢?实现Docker容器之间的通信的具体步骤如下:

    (1):创建容器 创建两个使用默认的bridge网络的容器,具体操作指令如下: 创建一个使用自定义的isolated_nw网络(需要预先创建【同步骤3】)的容器,具体提操作指令如下: 为container2容器新增一个自定义的isolated_nw网络连接,具体操作指令如下: (2):容器地址查看 首先,进入container容器,具体操作指令如下: 接下来分别进入容器container1和container3,并通过ifconfig指令查看对应容器的IP地址 (3):容器通信测试 首先,使用docker attach container1指令进入container1容器内部,使用ping指令连接container3来查看是否能够通信

    二:Docker Swarm集群


    Docker Swarm使用

    1:环境搭建

    更改IP步骤: 第一步:先获取网卡名称,输入ifconfig,网卡名称为ens33 第二步:修改网卡配置文件 注意:*上述更改的网关和ip信息要和虚拟机设置一致 第三步:重启网络服务:#sudo /etc/init.d/networking restart 第四步:测试连通性

    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上自带的镜像来启动服务,也可以通过Dockerfile构建镜像来启动服务

    5:查看Docker Swarm集群中的服务

    (1):当服务部署完成后,在管理节点上可以通过docker service ls指令查看当前集群中的服务列表信息,具体操作指令如下: (2):可以使用docker service inspect指令,查看部署的服务具体详情,具体操作指令如下 (3):可以使用docker service ps 指令查看指定服务在集群节点上的分配和运行情况,具体操作指令如下 #docker service ps helloworld

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

    在管理节点manager1,更改服务副本数量的指令如下

    7:删除服务

    #docker service rm helloworld

    8:访问服务

    前面部署的服务都没有直接向外界暴露服务端口,外界也无法正常访问服务。接下来我们就通过自定义overlay驱动网络为例来讲解集群下的网络管理与服务访问,具体的实现过程如下 (1):在集群管理节点manager1上,执行docker network ls指令查看网络列表 (2):在集群管理节点manager1上,创建以overlay为驱动的自定义网络,具体操作指令如下 (3):在集群管理节点manager1上,再次部署服务,具体操作指令如下 (4):在集群管理节点manager1,使用docker service ps my-web指令查看服务的两个服务副本运行情况 (5):外界访问服务 打开浏览器,使用任意一台机器的“IP+8080”端口进行服务访问,都可以正常显示,具体效果如下

    三:Volumes数据卷管理


    1:Volumes数据卷使用

    (1):创建并管理数据卷 (2):查看数据卷 (3):检查数据卷 (4):删除数据卷 #docker volume rm my-vol

    2:启动容器并加载数据卷

    (1):查看本机容器和数据卷 在Docker主机终端分别使用docker ps -a和docker volume ls指令查看本地Docker机器上存在的容器和数据卷 (2):确认查看本机Docker文件系统中的容器和数据卷 首先在Docker主机终端中将普通用户切换到root用户,然后进入“/var/lib/docker”目录,即Docker默认在本机上的文件系统目录,查看信息

    (3):启动容器并挂载数据卷 使用docker run指令创建并启动一个容器,同时挂载一个数据卷,具体操作指令如下 (4):再次查看本机容器和数据卷列表 在Docker主机终端分别使用docker ps -a 和docker volume ls 指令查看本地Docker机器上存在的容器和数据卷 (5):检查容器详情 在Docker主机终端使用docker inspect指令查看容器详情(主要查看数据挂载信息) (6):再次确认本机Docker文件系统中的容器和数据卷 首先在Docker主机终端中将普通用户切换到root用户,然后进入/var/lib/docker目录,然后分别进入containers容器文件目录和volumes数据卷文件目录查看内容

    四:出现的问题

    1:在搭建环境时,出现不能访问外网的问题(ping www.baidu.com) 解决方案: :(1):保证网络环境设置一致的情况 (2):检查DNS代理是否配置正确

    最新回复(0)