Docker中的网络与数据管理

一、Docker网络管理

1、Docker默认网络管理

docker的网络模式

注:docker有三种网络模式,默认的为bridge,配置后可以和宿主机通信,host和none属于无网络,容器添加到这两个网络时不能和外界网络通信。

(1)、创建并启动容器

查看容器:

(2)、查看网络详情

注:使用上述命令后显示bridge网络的所有详细信息,里面包括networktest容器。

2、自定义bridge网络

(1)、创建自定义网络

(2)、使用自定义网络启动容器
使用自定义网络启动一个名为nwtest的容器

查看nwtest的网络详情
#docker inspect nwtest

(3)、为容器添加网络管理
执行如下命令为nwtest添加bridge网络管理
#docker network connect bridge nwtest
查看nwtest的网络详情
#docker inspect nwtest
由下图可以看出,执行容器添加网络管理指令后,nwtest拥有了两种网络管理方式

(4)、断开容器网络连接

(5)、移除自定义网络

3、容器之间的网络通信

(1)、创建容器
创建两个默认使用bridge网络的容器

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

为container2容器新增一个使用自定义的isolated_nw网络连接
执行完上述指令后,容器之间形成了如下所示的网络关系图

(2)、容器地址查看
查看container2容器的地址:

查看container1容器的地址:

查看container3容器的地址:

container2容器的地址:172.17.0.5 和172.18.0.3
container1容器的地址:172.17.0.4
container3容器的地址:172.18.0.2
(3)、容器通信测试
如图所示,在container1内使用” ping -w -4 IP " 和 "ping -w -4 容器名称”都无法连接containner1,验证了容器不在一个网络环境下无法通信。
如图所示,在container2内使用” ping -w -4 IP " 可以连接containner1和containner3,验证了容器在同一网络环境下可以通信。

如图所示,在container2内使用” ping -w -4 容器名称 " 连接containner1和containner3,验证了容器使用bridge网络管理不可以使用主机名进行通信,使用自定义网络管理可以使用主机名进行通信。

二、Docker Swarm 集群

1、环境搭建

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

2、创建Docker Swarm集群

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

执行上述指令后,Docker就会自动在IP为192.168.1.3的机器上创建一个Swarm集群,并将该IP地址的机器设置为集群的管理节点。
(2)、查看集群节点信息

3、向Docker Swarm集群添加节点

(1)、启动另外两台Docker机器,分别执行如下指令
# docker swarm join --token SWMTKN-1- 4cgj2ubq2j7ajr0dy91c5a8zn70lxsxzw6oaqef8kxxhcm7q9t-9nmr1lxjfbfl3ayo1eo2y1yvf 192.168.1.3:2377
注:上述指令中的 --token参数一定要使用自己在前面创建Docker Swarm集群时返回的向集群中添加节点的指令。
(2)、再次查看集群节点信息

4、向Docker Swarm集群部署服务

使用Docker Hub自带的alpine镜像部署集群服务:

部署集群服务

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

(1)、查看服务列表信息

(2)、查看部署的服务的具体详情

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

在管理节点上,更改服务副本数量的命令如下:

7、删除服务

在管理节点上,删除服务的命令如下

8、访问服务

(1)、查看网络列表

注:与非集群环境下的Docker网络对比,Docker Swarm集群网络列表多了以bridge和overlay为驱动的网络。
(2)、在管理节点上创建以ovlrlay为驱动的自定义网络

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

(4)、在管理节点上查看服务副本运行情况
(5)、外界访问服务
打开浏览器,使用任何一台节点机器的“IP+8080"或”主机名“8080”进行访问,都可以正常显示

三、Volumes 数据卷管理

1、创建并管理数据卷

(1)、创建数据卷

(2)、查看数据卷

(3)、核查数据卷
(4)、删除数据卷
不再使用数据卷后,可以使用下列命令删除指定名称的数据卷:
#docker volume rm my-vol

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

(1)、查看本机容器和数据卷

(2)、确认查看本机Docker文件系统中的容器和数据卷

(3)、启动容器并挂载数据卷
使用docker run 指令创建并启动一个容器,同时挂载一个数据卷:

也可以使用 -v 参数挂载数据卷:docker run -d -it --name devtest --mount source=myvol,target=/app busybox:latest
(4)、再次查看本机容器和数据卷列表

(5)、查看容器详情
#docker inspect devtest
(6)、再次确认本机Docker文件系统中的容器和数据卷

Docker 中的网络管理与集群构建相关推荐

  1. Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)

    文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...

  2. Docker——docker-registry私有仓库集群构建

    摘要 随着docker使用的镜像越来越多,就需要有一个保存镜像的地方,这就是仓库.目前常用的两种仓库:公共仓库和私有仓库.最方便的就是使用公共仓库上传和下载,下载公共仓库的镜像是不需要注册的,但是上传 ...

  3. 使用Docker Swarm搭建分布式爬虫集群

    转载自  使用Docker Swarm搭建分布式爬虫集群 在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况.此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运 ...

  4. Docker Swarm 初步认识 及 集群搭建

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  5. Docker容器之compose容器集群的快速编排

    Docker容器之compose容器集群的快速编排 前言 一.Docker-compose简介 二.YAML文件格式及编写注意事项 (1)YAML文件格式 (2)YAML格式的注意事项 (3)YAML ...

  6. Docker搭建MongoRocks副本分片集群(Docker Mongodb Rocksdb Replication Sharding)

    Docker搭建MongoRocks副本分片集群 准备 依赖 安装 下载镜像 基本单实例 带配置的单实例 权限配置 docker参数解释 启动命令 rocksdb配置解释 查看启动日志 连接测试 ov ...

  7. [416]使用Docker Swarm搭建分布式爬虫集群

    在爬虫开发过程中,你肯定遇到过需要把爬虫部署在多个服务器上面的情况.此时你是怎么操作的呢?逐一SSH登录每个服务器,使用git拉下代码,然后运行?代码修改了,于是又要一个服务器一个服务器登录上去依次更 ...

  8. 使用 Docker Stack 部署多服务集群

    使用 Docker Stack 部署多服务集群 前言 单机模式下,我们可以使用 Docker Compose 来编排多个服务,而在 上一篇文章 中介绍的 Docker Swarm 只能实现对单个服务的 ...

  9. ActiveMQ此例简单介绍基于docker的activemq安装与集群搭建

    ActiveMQ拓展连接 此例简单介绍基于Docker的activemq安装与集群搭建 一 :安装 1.获取activemq镜像 docker pull webcenter/activemq 2.启动 ...

最新文章

  1. web前端研发工程师编程能力成长之路
  2. oauth2 单点登录_Spring Security Oauth2和Spring Boot实现单点登录
  3. 数学之美 系列七 -- 信息论在信息处理中的应用
  4. android编程中setLayoutParams方法设置
  5. 又一位纯手工打造CPU的牛人,并且汇编语言实现类Unix系统,支持文件系统
  6. Java内存区域(运行时数据区域)和内存模型(JMM)
  7. android 文字反转_多文字共享信息系统
  8. NI myRIO-1900(ARM9)嵌入式小车2015.8-9
  9. Android动态添加Fragment
  10. ubuntu19.04支持android,Ubuntu 19.04 最终发布日期和计划功能公布
  11. oracle的安装与卸载
  12. Atitit atiuse软件系列
  13. 2020 有哪些不容错过的前端技术趋势? | 凌云时刻
  14. ZooKeeper 的监控
  15. 伺服驱动器cn1引脚定义_关于三菱驱动器CN1端口的接线-专业自动化论坛-中国工控网论坛...
  16. win10专业版开机画面模糊_新买电脑看起来有点糊?一招教你解决Win10屏幕模糊问题...
  17. BFS(宽度优先算法)
  18. 远程计算机或设备将不接受连接,谷歌浏览器无法上网
  19. 微信公众号发送红包(源码)
  20. u-boot启动流程分析

热门文章

  1. CNN中input,output的计算推导
  2. python小爬虫—获取学校教务处成绩
  3. vue和哪个php框架搭配,vue配什么ui框架比较好
  4. ui自动化分享ppt_全面迎接自动化!微软公布RPA价格,将于4月2日正式上市
  5. python三天速成_python学习第三天
  6. httppost传递内容过大_中小企业会议营销成功的7要素(干货内容)
  7. php给点击的li设置样式,两种方法为LI列表前3行设置样式
  8. java 最简单一个家庭支付收入项目(实用于刚入门的小伙伴)
  9. spring freemarker 获取后端的值
  10. echarts 雷达图_【带着canvas去流浪】绘制雷达图