当前位置: 首页 > ds >正文

docker 02网络

docker 02网络

# 查看本地机器的网桥
[root@docker-110 ~]# brctl show
bridge name	bridge id		STP enabled	interfaces
br-b3ca5dd162d9		8000.0242525c43ca	no		
br-e5c6866dbfd1		8000.0242be6263df	no		
docker0		8000.0242f21d91d9	no	# 用本地的一个网桥跑一个nginxdocker run -d -p 18877:80 --network=b3ca5dd162d9 nginx 

在这里插入图片描述

说明了这个容器在用这该网桥

# 看看默认的网桥,docker0的网段是多少
[root@docker-110 ~]# docker network ls
NETWORK ID     NAME             DRIVER    SCOPE
4de4dc2e2ec4   bridge           bridge    local
0db7cc002f15   host             host      local
e5c6866dbfd1   linux0224-net1   bridge    local
b3ca5dd162d9   linux0224-net2   bridge    local
2038547e0c41   none             null      localdocker inspect  bridge"Config": [{"Subnet": "172.17.0.0/16", # 子网"Gateway": "172.17.0.1"    # 网关}]

使用默认的docker0去创建容器

# busybox简单调试网络信息
# 快速创建容器,查看网络信息
# 进入容器内看看,docker0的网络信息
==============================================
[root@docker-200 ~]#docker run -it  busybox/ # ifconfig
eth0      Link encap:Ethernet  HWaddr 02:42:AC:11:00:02  inet addr:172.17.0.2  Bcast:172.17.255.255  Mask:255.255.0.0

如何证明这个使用率docker0这个网桥,口说无凭?

# 如何证明容器用来什么网桥
brctl show 
[root@docker-110 ~]# brctl show 
bridge name	bridge id		STP enabled	interfaces
br-b3ca5dd162d9		8000.0242525c43ca	no		vethb14f45b
br-e5c6866dbfd1		8000.0242be6263df	no		
docker0		8000.0242f21d91d9	no		veth14afd59ifconfig 也看到了多个,veth虚拟网络接口命令

在这里插入图片描述

brctl show ip addr show # 更加简便的办法,查看网桥,和容器的关系
# 基于容器信息看到关系
# 修改docker0网桥之间,容器记录 a99   172.17.0.2 zheg IP[root@docker-200 ~]#docker inspect a99d78d85464 |grep  -i networks -A 2"NetworkSettings": {"Bridge": "","SandboxID": "dfb497ddf3c426252b3267aeb312b07469107462bd04528b01a8b59177a27504",
--"Networks": {"bridge": {"IPAMConfig": null,# 查看网桥详细信息,有哪些容器再用它[root@docker-200 ~]#docker inspect bridge 
# 公司对容器的网络环境有要求,网络部门给了其他网段的ip,说你们的容器环境,只能用和这个
# 192.168.15.0/24# 你默认的docker0,得使用这个网段下的ip,容器创建的ip是这个局域网内的
# docker0作为默认网桥,得修改docker配置文件
[root@docker-110 ~]# cat /etc/docker/daemon.json 
{"bip":"192.168.15.1/24","registry-mirrors": ["https://ms9glx6x.mirror.aliyuncs.com"],"insecure-registries":["http://10.0.0.110","http://10.0.0.110:5000"]}[root@docker-110 ~]# systemctl daemon-reload
# 重载docker配置
# 重启# 创建一个新的nginx容器
[root@docker-110 ~]# docker run -d -p18999:80 nginx 
fb086c522529d76eeaa83951ccdcc53f74f1c5625681d6806ead8fadb2a0f9df# 可以看看他的网络地址
docker inspect id
5aa88aafb2b7a6338fb","Gateway": "192.168.15.1","IPAddress": "192.168.15.2","IPPrefixLen": 24,"IPv6Gateway": "","GlobalIPv6Address": "","GlobalIPv6PrefixLen": 0,"DriverOpts": null,"DNSNames": null}}}# 访问看看
[root@docker-110 ~]# curl 192.168.15.2:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>ok 

host模式,原理,背诵

1.  hosts启动的容器,没有自己的网卡,ip信息,直接用宿主机的
2.  但是除了network网络空间,其他如进程,文件系统,还是容器自己的
3.  通过参数 --network host 开启
4.  host模式,没有端口映射功能
5.  直接使用宿主机的网络环境,因此网络性能更高一筹。

直接使用主机的环境。也就少了一层数据包的转发

创建容器,使用host网络模式

[root@docker-200 ~]#docker run -d --network=host nginx
063d3e5dbc563d71f396fff608f3240fc83feac49406166e57e1e3aecb7904d4

在这里插入图片描述

# 这个走的是宿主的网络,
[root@docker-110 ~]# curl 10.0.0.110:80
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>

container 模式

1. container模式的容器是
容器A使用另一个已存在的容器B,共享它的网络空间# 1.先准备好一个容器A
# 容器A用的是默认的 bridge网桥[root@docker-200 ~]#docker ps
CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS         PORTS                                     NAMES
8742c0eda899   nginx     "/docker-entrypoint.…"   6 minutes ago   Up 6 minutes   0.0.0.0:18777->80/tcp, :::18777->80/tcp   happy_boyd2.创建新容器,制定用容器A的网络环境

在这里插入图片描述

None 模式

1.None模式是不创建任何网络信息,这个模式几乎不用。2.若是给none模式的容器创建网络环境,得自己基于ip命令去创建网络名称空间,操作较为复杂。创建一个容器,有独立的文件系统,进程空间,用户空间,完全没有网络空间
如果要自己定制网络环境1. 先创建网络名称空间
2. 再创建网络接口
3. 再创建ip信息等
http://www.xdnf.cn/news/13865.html

相关文章:

  • Rollup vs Webpack 深度对比:前端构建工具终极指南
  • (二十六)深度解析领域特定语言(DSL)第四章——词法分析:基于正则表达式的词法分析器
  • 完全渲染后的页面内容
  • Matlab 实现基于深度学习的高压开关柜多故障实时检测方法研究
  • 《TCP/IP协议卷1》第1章 概述
  • Panthor 开源方案与 Mesa 图形库的技术解析
  • 【地图服务限制范围】
  • Odoo 18 库存中管理最低安全库存规则(再订货规则)
  • Python Day49 学习(日志Day19复习)
  • 【Java多线程从青铜到王者】阻塞队列(十)
  • 欧拉系统openEuler-24.03忘记密码,如何改密码
  • Python训练营-Day29-复习日
  • 修改FFMpeg的日志函数av_log,使其在记录日志时能显示调用该函数的位置(文件名和行号)
  • Metastore 架构示意图和常用 SQL
  • 前端加密当日
  • 力扣前缀和
  • 河南农担携手Gitee企业版:构建农业金融数字化研发新基建
  • 网络层协议:IP
  • qt初识--02
  • 移动电储能工作原理及SOC约束解析
  • 光谱相机叶绿素荧光成像技术的原理
  • Vue 组件通信
  • Jenkins 配置信息导出 的详细说明(中英对照)
  • 如何用AI赋能学习
  • OpenCV CUDA模块图像变形------对图像进行 尺寸缩放(Resize)操作函数resize()
  • Elasticsearch:使用 ES|QL 进行地理空间距离搜索
  • Linux612 chroot_list开放;FTP服务ftp:get put,指定上传路径报错553;ftp查看文件夹权限
  • 28-Oracle 23ai Fast Ingest(Memoptimized Rowstore)高频写入
  • 西电【信息与内容安全】课程期末复习笔记
  • jupyter notebook的相关知识及可能遇到的问题