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----网络知识详解

目录

前言

?一、docker的原生网络

?1、bridge

2、host网络

3、none网络

二、docker自定义网络

1、docker自定义网络

?

?

?

2、创建自定义网桥

3、让不同子网能通信


前言

Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。


?一、docker的原生网络

server2:

docker network ls ?#docker的原生网络【共有三个】
ip addr #docker安装后有一个docker0的桥接口
yum install -y ?bridge-utils
brctl show

?1、bridge

【没有一个公有ip只有宿主机可以直接访问】

docker run -d --name demo nginx ?#开启一个容器
docker inspect demo ? 
#可以看到容器已经被分到一个ip地址【docker0网络端默认地址是172.17】

##注意ip分配是单调递增的

brctl show ?
#所有容器内部网关都会指向docker0的接口

docker run -it --rm busybox
--/ # ping baidu.com ?#可以看到通信

iptables -t nat -nL ?#有一个伪装

【容器通过桥接到达宿主机,宿主机通过linux陆游功能到达eth0出去,出去做了伪装】?

docker run -it --rm --network host busybox
--/ # ip addr

2、host网络

【可以让容器共享网络,外部主机与容器直接通信,但是网络缺少隔离性】


【宿主机和容器共享相同网络,宿主机如果占了80端口,那么容器就不能占用】:

brctl show
docker ps
docker rm -f demo

docker run -d --name demo --network host nginx
docker run -d --name demo2 --network host nginx

docker ps ? 
#发现demo2没有运行

docker ps -a ? 
#可以看到demo2已经退出

docker logs demo2 ? 
#查看demo2的日志:80端口已经被占用

docker rm -f demo2

?

3、none网络

【指禁用网络功能,只有lo接口】

docker run -it --rm --network none busybox #启动
--/ # ls
--/ # ip addr ?#只有回环接口,没有网络接口


二、docker自定义网络

【这里的bridge和默认的bridge网络模式有区别,在于有无dn解析】

?

1、docker自定义网络

docker network ls
docker ps
docker rm -f demo?
docker run -it --rm --name demo busybox
--/ # ping demo

?【容器ip是动态单调递增的,但是不固定】

docker run -d --name demo1 nginx
docker inspect demo1 #ip为0.2
docker stop ?demo1 ? #停掉demo1
docker run -d --name demo2 nginx ?#创建demo2
docker inspect demo2 ?#ip为0.2
*因为demo1是停止的资源是释放状态

docker ps
docker start demo1 ?#开启demo1
docker ps
docker inspect demo1 ?#可以看到ip是0.3
docker run -it --rm --name demo3 busybox ?#创建demo3
--/ # ping demo3 ?#ping不通
--/ # ping demo2
--/ # ip addr ?#没有dn解析ping不通,但是能获得ip地址
--/ # ping 172.17.0.3 ?#ip可以ping通


2、创建自定义网桥

docker ps
docker rm -f demo1
docker rm -f demo2 ?#删掉多余容器
docker network ls
docker network create --help
docker network create mynet1
docker network ls ? #默认是桥接
docker network inspect mynet1 ?#查看mynet详情
ip addr show docker0

docker network ?create --subnet 172.10.0.0/24 --gateway 172.10.0.1 mynet2 
#指定网段,不能和本机所有网段冲突

docker network ls
docker network ?inspect mynet2

docker run -d --name demo1 --network mynet1 --ip 172.18.0.10 nginx #报错,不支持指定ip【自动分配不能手动指定】
docker ps -a
docker rm demo1?
docker run -d --name demo1 --network mynet2 --ip 172.10.0.10 nginx ?#mynet2可以指定
docker inspect demo1?
docker run -d --name demo2 --network mynet1 nginx ?
docker ps

docker inspect demo1 ?#demo1在mynet2里
docker inspect demo2 ?#demo2在mynet1里
docker run -it --rm --network mynet1 busybox
*注意不同的子网之前网络不通,是docker网络隔离作用
--/ # ping demo1
--/ # ping demo2 ?
docker run -it --rm --network mynet2 busybox
--/ # ping demo1
--/ # ping demo2
iptables -nL

3、让不同子网能通信

docker ps
docker network ls
docker run -it --name demo3 --network mynet1 busybox
--/ # ping demo1
--/ # ping demo2
--/ # ip addr
按住ctrl+p+q【不退出】
docker ps?
docker network connect mynet2 demo3 ?#把demo3接到mynet2里【默认接到mynet1】
docker attach demo3 ?#进入demo23
--/ # ip addr ?*可以看到有两个网卡
--/ # ping demo1
--/ # ping demo2
*两个都能连通

?

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

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