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

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信息等

相关文章:

  • Java从入门到精通 - 面向对象高级(一)
  • HALCON第五讲-> 形状匹配
  • java枚举 注解 异常 常用类
  • Kubernetes安全机制深度解析(一):从身份认证到资源鉴权
  • js将object转换成string
  • Windows桌面图标修复
  • FastDFS 分布式存储系统深度解析与实践指南
  • 关于transceiver复位测试
  • DC3靶机渗透
  • Linux系统详解
  • 网络原理9-HTTP2
  • RAG 技术详解:结合检索与生成的智能问答新范式
  • shell脚本不同执行方式的区别
  • 2025年度重点专项项目申报指南的通知公布!
  • 多线程(4)
  • golang -- map实现原理
  • C++面试(8)-----求链表中环的入口节点
  • 佰力博与你探讨表面电阻测试的一些方法和测试应用场景
  • 树莓派5-ubuntu 24.04 安装 ros环境
  • Oracle OCP认证考试考点详解083系列18
  • 怎么给网站做短信/网站搜索排名查询
  • 投资网站模板/苏州百度快照优化排名
  • 餐饮网站网页设计代码/西安网络优化大的公司
  • 自己做的网站怎么让别人看见/如何写软文推广产品
  • 网站的建设怎么写/网络营销做的比较好的企业
  • 企业网站建设的基本内容/seo引擎优化方案