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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Docker网络 -> 正文阅读

[系统运维]Docker网络


ip addr查看当前linux虚拟机的ip地址

在这里插入图片描述

此时有三个网络,docker是如何处理网络之间的访问的呢?


启动tomcat容器,查看其ip地址

在这里插入图片描述
当前linux主机可以ping通当前容器的内部

原理

1.我们每启动一个docker容器,docker就会给docker容器分配一个ip,我们只要安装了docker就会有一个网卡docker0

这里使用的是桥接模式,使用的是evth-pair技术

在这里插入图片描述
我们发现这个容器带来的网卡,都是一对出现的

evth-pair就是一对的虚拟设备接口,他们都是成对出现的,一端连着协议,一端彼此相连

正因为有这个特性,evth-pair充当一个桥梁,连接各种虚拟网络设备


创建tomcat01和tomcat02,测试发现两个容器之间可以相互ping通

在这里插入图片描述
结论:

tomcat01和tomcat02共用一个路由器docker0

所有的容器不指定网络的情况下,都是docker0做路由的

docker会给我们的容器分配一个默认的可用IP


小结

Docker使用的是Linux的桥接,宿主机中是docker容器的网桥docker0

在这里插入图片描述

Docker中的所有的网络接口都是虚拟的,虚拟的转发效率高(内网传递文件)

只要容器删除,对应的网桥就没了


Docker --link :添加主机名和ip的映射

docker间常常需要互联或者说通信,比如后台程序访问数据库容器,一般是需要ip+端口的形式,然而ip是经常会变化的,docker中采用link来为容器起个名字,以后访问只要名字+端口就行了,这样减少了ip访问下,ip常发生变化而导致的问题

操作概述,在创建第二个容器时,将第一个容器link到第二个容器中,这样第二个容器访问第一个容器时利用名字就能访问

1.在第二个容器创建时添加一个link,如下面在创建了第一个容器test1之后创建第二个容器时:

docker run -d --name test2 --link test1 busybox /bin/sh -c "while true;do sleep 3600 ;done"

2.进入第二个容器内部

docker exec -it test2 /bin/sh

输入ping test1----->发现是可通的

但注意进入test1 ping test2是不行的,原因在于link 具有方向性,即左边的可以ping 右面的名字

本质: 在test2容器的/etc/hosts文件中添加了172.18.0.3 test1 ,即将ip映射到了test1这个域名上

现在–link已经不建议使用了


–link命令指定别名

上面–link没有为当前容器起一个名字,那么默认ip映射到test1这个容器名上,访问的时候是ping test1

docker run -d --name test --link mysql:db -p xxx:xxx test
其中mysql是指一个name为mysql的容器,db为为其指定的别名

然后在test容器中就可以使用db来代替ip来访问mysql了


自定义网络

查看所有的docker网络 — docker network ls

在这里插入图片描述

docker的网络模式

  • bridge : 桥接 docker默认
  • none : 不配置网络
  • host : 和宿主机共享网络
  • container : 容器网络连通(用的少)

docker network --help 查看网络相关的命令

在这里插入图片描述

自定义网络

# 我们直接启动命令,有默认的参数,只是省略掉了 --net bridge,而这个就是我们的docker0
docker run -d -P --name tomcat01 tomcat
docker run -d -P --name tomcat01 --net bridge tomcat

docker0的特点 :默认的,域名不能访问,–link可以打通连接


创建自定义网络命令:docker network create

docker network create --driver bridge --subnet 192.168.1.0/16 --gateway 192.168.1.0 mynet
解析:
--driver bridge 表示使用桥接模式
--subnet 192.168.1.0/16 表示子网ip 可以分配 192.168.1.2 到 192.168.255.255
--gateway 192.168.1.0 表示网关
mynet 表示网络名

在这里插入图片描述


查看自己定义的网络相关信息

在这里插入图片描述

使用自定义网络中的网桥创建容器

这里启动两个容器

docker run -d -P --name tomcat-net-01 --net mynet tomcat
docker run -d -P --name tomcat-net-02 --net mynet tomcat

再次使用 docker network inspect mynet 查看网络信息

在这里插入图片描述
测试ping IP及name是否都可以ping通:

在这里插入图片描述
测试结果如下:

使用自定义网络 ping 容器的 ip 地址和名称都能 ping 通(不使用–link也可以ping通名字)

我们自定义的网络docker都已经帮我们维护好了对应的关系,推荐我们平时这样使用网络

好处:不同的集群使用不同的网络,保证集群是安全和健康的


网络连通

如何打通不同网段,实现连接

在这里插入图片描述
打通的是容器和对应的网卡,而不是打通网卡和网卡

查看相关帮助

在这里插入图片描述
在这里插入图片描述
在不指定网络的情况下再次启动两个容器,即默认的docker0

在这里插入图片描述
在不打通的情况下进行测试

在这里插入图片描述
结果:发现ping不通


测试

在这里插入图片描述

测试tomcat01 连通 mynet

案例实践:docker network connect

[root@web ~]# docker network connect mynet tomcat01
[root@web ~]# docker inspect mynet

连通之后就是将tomcat01 放到了mynet网络下

官方:一个容器两个ip地址;与阿里云服务,公网ip 私网ip类似

在这里插入图片描述

tomcat01 连通 tomcat-net-01

在这里插入图片描述
在这里插入图片描述
**结论:假设要跨网络操作别人,就需要使用docker network connect 连通! **

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:53:40  更:2021-10-12 23:54:09 
 
开发: 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 18:28:38-

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