IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 7.配置容器的网络 -> 正文阅读

[系统运维]7.配置容器的网络

容器?络

容器?络实质上也是由 Docker 为应?程序所创造的虚拟环境的?部分,它能让应?从宿主机操作系统的?络环境中独?出来,形成容器?有的?络设备、IP 协议栈、端口套接字、IP 路由表、防?墙等等与?络相关的模块。
在这里插入图片描述
在Docker网络中,有三个核心概念:
**沙盒 ( Sandbox ):**沙盒提供了容器的虚拟?络栈,也就是之前所提到的端口套接字、IP 路由表、防?墙等的内容。其实现隔离了容器?络与宿主机?络,形成了完全独?的容器?络环境。
**?络 ( Network )😗*可以理解为 Docker 内部的虚拟??,?络内的参与者相互可见并能够进?通讯。Docker 的这种虚拟?络也是于宿主机?络存在隔离关系的,其?的主要是形成容器间的安全通讯环境。
**端点 ( Endpoint ):**是位于容器或?络隔离墙之上的洞,其主要?的是形成?个可以控制的突破封闭的?络环境的出??。当容器的端点与?络的端点形成配对后,就如同在这两者之间搭建了桥梁,便能够进?数
据传输了。
这三者形成了 Docker ?络的核?模型,也就是容器?络模型 ( Container Network Model )。

Docker 的?络实现

容器?络模型为容器引擎提供了?套标准的?络对接范式,?在 Docker 中,实现这套范式的是 Docker 所封装的 libnetwork 模块。
在这里插入图片描述
Docker 官?提供了五种 Docker ?络驱动:Bridge Driver、Host Driver、Overlay Driver、MacLan Driver、None Driver。

Bridge ?络是 Docker 容器的默认?络驱动,是通过?桥来实现?络通讯 ( ?桥?络的实现可以基于硬件,也可以基于软件 )。
Overlay ?络是借助 Docker 集群模块 Docker Swarm 来搭建的跨 Docker Daemon ?络,可以通过它搭建跨物理主机的虚拟?络,进?让不同物理机中运?的容器感知不到物理机的存在。

容器之间互联

Docker提倡一个容器只包含一个应用,但是目前很多系统是由多服务组成,此时就需要不同的容器之间能够通过网络来进行通信。要让容器间进行通讯,需要在创建容器时(docker createdocker run),使用--link 选项进?配置进行配置
例如,MySql是用Docker搭建的,此时通过Docker搭建一个web应用并且连接MySql

docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes mysql
docker run -d --name webapp --link mysql webapp:lates

此时,两个容器间的网络已经打通。而在Web的配置文件中直接写入MySql服务名就可以连接,Docker会将其指向MySql容器的IP

String url = "jdbc:mysql://mysql:3306/webapp";

别名连接
直接通过容器名连接缺乏一定的灵活性,还可以通过--link <name>:<alias>的形式进行别名连接

docker run -d --name webapp --link mysql:database webapp:lates
#应用中
String url = "jdbc:mysql://database:3306/webapp";

暴露端口
虽然网络打通了,但是这并不意味这能随意访问被连接容器的任何服务。Docker有一套网络安全机制,只有容器运行的端口,才可以被访问。通过docker ps可以看到容器暴露的端口,可以在创建容器时通过--expose配置需要暴露的端口。端口的暴露就类似于防火墙的开放端口

docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --expose 13306 --expose 23306 mysql:5.7

管理?络

容器能够互相连接的前提是处于同一个网络中( 这?的?络是指容器?络模型中的?络 )。就像上面说的网络可以看作是Docker所虚拟的子网,而容器网络沙盒可以看作是虚拟的主机,只有当主机都处在同一个网络中才可以进行通讯。
当启动 Docker 服务时,它会为我们创建?个默认的 bridge ?络,?我们创建的容器在不专门指定?络的情况下都会连接到这个?络上。
通过 docker inspect 命令查看容器,可以在 Network 部分看到容器?络相关的信息。
在这里插入图片描述
Docker 默认创建的这个 bridge ?络是?常重要的,在没有明确指定容器?络时,容器都会连接到这个?络中
创建网络
docker CLI ?与?络相关的命令都以 docker network 开头,其中创建?络的命令是 docker network create

docker network create -d bridge individual

通过 -d 选项可以为新的?络指定驱动的类型,其值可以是刚才所提及的 bridge、host、overlay、maclan、none,也可以是其他?络驱动插件所定义的类型。这?我们使?的是 Bridge Driver ( 当我们不指定?络驱动时,Docker 也会默认采? Bridge Driver 作为?络驱动 )。
通过 docker network ls或是 docker network list 可以查看 Docker 中已经存在的?络。
在这里插入图片描述
在启动容器时,可以通过--network来指定要加入的网络,假如此时MySql加入了新建的网络

docker run -d --name mysql -e MYSQL_RANDOM_ROOT_PASSWORD=yes --network individual  mysql

那么Web容器如果还是之前的连接方式是无法启动的,因为Web容器和MySql容器不在一个网络下,启动并打通和MySql的网络也需要添加--network命令

docker run -d --name webapp --link mysql --network bridge webapp:latest

端口映射

除了容器和容器间进行通讯外,还有直接访问容器内应用的需求。比如此时有一个Web容器,需要直接访问容器内的应用,此时就需要进行端口的映射。通过端口的映射可以把容器的端口映射到宿主机操作系统上,当访问宿主机中的端口时,数据就会自动发送给与之映射的容器端口。
使?端口映射选项的格式是 -p <ip>:<host-port>:<container-port> ,其中 ip 是宿主操作系统的监听 ip,可以?来控制监听的?卡,默认为0.0.0.0,也就是监听所有?卡。host-port 和 container-port 分别表?映射到宿主操作系统的端口和容器的端口,这两者是可以不?样的,例如可以将容器的 80 端口映射到宿主操作系统的 8080 端口,传? -p 8080:80 即可。
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-14 13:47:18  更:2021-09-14 13:49:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:46:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码