Docker 网络

桥接模式

用于连接两个不同网段的设备,共享通信的一种方式

桥接设备

工作在osi模型额度第二层,数据链路层,转发数据帧,Mac地址

类似于交换机,只能转发同一网段,通过泛洪广播来找目标设备的Mac地址

docker网络就是基于桥接模式实现的

1、虚拟网络桥 安装开启docker之后,docker进程就会自动创建一个虚拟网络桥(docker0),是一个虚拟的网络设备,类似于物理网络设备的交换机

2、分配唯一的IP地址,每次运行容器,docker进程都会分配唯一的且未被其他容器占用的IP地址给容器,这个IP地址是在桥接模式网络的子网中

3、容器和主机通信,通过桥接模式,容器可以与主机直接通信,容器可以访问主机的运行服务,主机可以通过桥接网络docker0

,来访问容器内部的进程(iptables的nat地址转换,咋主机上做了地址转换)

问题:docker的网桥是宿主机虚拟出来的,并不是一个真正存在的网络设备,外部网络无法寻址到,外部网络直接访问docker0,分配给容器的IP地址,可以给容器做一个端口映射

宿主机和主机之间的映射
复制代码
docker run -itd --name test1 -P nginx:1.22.0 /bin/bash
-p:在创建容器时,在宿主机和容器做了一个端口映射,-P随机分配一个端口给宿主机,容器的端口哦是不变的 
---P 32768  开始
-P	随机指定
-p	指定端口,热为设置固定的端口映射 
进入容器开启一下服务
实际上,docker是在宿主机和容器之间做了一个iptables的NAt地址转换

在虚拟机上访问

查看容器的输出和日志信息(创建容器时,不要加bin/bash)

查看docker网络列表
复制代码
NAME: 是Docker网络的名称。在这里,你列出了三个网络,它们的名称分别是bridge、host和none。

NETWORK ID: 每个Docker网络都有一个唯一的网络ID。

DRIVER: 这是Docker使用的网络驱动程序。在这里,bridge表示使用的是桥接网络,host表示使用的是主机网络,而none表示没有网络。

SCOPE: 表示网络的作用范围。local表示该网络仅在本地主机上可用。
docker的网络模式

1、bridge默认,在创建docker时,不需要指定网络类型,默认就是bridge

2、host模式:容器将不会虚拟出自己的网卡,也没有自己的地址

复制代码
#创建容器的时候可以指定网络模式:--network host
#公用模式,如果单个运行,可以使用host

docker run -itd --name test4 --network host nginx /bin/bash

3、container模式:容器和容器之间共用一个ip和端口

4、none模式:docker容器有自己的network-space但是容器没有任何网络设置

这个容器没有网卡,没有ip,没有路由,只有lo回环网络,在none模式下,容器不可以联网,用于容器功能测试

复制代码
docker run -itd --name test2 --network=none nginx /bin/bash

5、自定义网络:我们可以给创建一个自己定义网段

复制代码
ocker run -itd --name nginx1 --network bridge --ip 172.17.0.10 nginx:latest /bin/bash
#在使用默认docker:0网桥时,创建容器是不能指定ip地址的,只能由docker网桥自动分配
#除非用户自定义的网络才可以给容器自定义IP地址
如何自定义创建网络
docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork
docker network create	创建网络
subnet=172.18.0.0/16	指定网段
--opt "com.docker.network.bridge.name"="docker1"  可以不加,但是网卡名称比较难以识别
mynetwork 	自定义网络名称
docker run -itd --name nginx1 --network mynetwork --ip 172.18.0.10 nginx:latest /bin/bash

访问172.18.0.10(在虚拟机访问)

相关推荐
sunfove2 小时前
光网络的立交桥:光开关 (Optical Switch) 原理与主流技术解析
网络
唯情于酒3 小时前
Docker学习
学习·docker·容器
喵叔哟3 小时前
20.部署与运维
运维·docker·容器·.net
Kevin Wang7275 小时前
欧拉系统服务部署注意事项
网络·windows
min1811234565 小时前
深度伪造内容的检测与溯源技术
大数据·网络·人工智能
汤愈韬5 小时前
Full Cone Nat
网络·网络协议·网络安全·security·huawei
zbtlink6 小时前
现在还需要带电池的路由器吗?是用来干嘛的?
网络·智能路由器
桌面运维家6 小时前
vDisk配置漂移怎么办?VOI/IDV架构故障快速修复
网络·架构
dalerkd6 小时前
忙里偷闲叙-谈谈最近两年
网络·安全·web安全
德育处主任6 小时前
『NAS』在群晖部署一个文件加密工具-hat.sh
前端·算法·docker