达州网站建设qinsanw优秀建筑设计案例
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:29
当前位置: 首页 > news >正文
达州网站建设qinsanw,优秀建筑设计案例,wordpress实现新闻列表,百度推广登录首页目录 一、Docker网络实现原理
二、Docker的网络模式
1、host模式
1.1 host模式原理
1.2 host模式实操
2、Container模式
2.2 container模式实操
3、none模式
4、bridger模式
4.1 bridge模式的原理
4.2 bridge实操
5、overlay模式
6、自定义网络模式
6.1 为什么需要…目录 一、Docker网络实现原理
二、Docker的网络模式
1、host模式
1.1 host模式原理
1.2 host模式实操
2、Container模式
2.2 container模式实操
3、none模式
4、bridger模式
4.1 bridge模式的原理
4.2 bridge实操
5、overlay模式
6、自定义网络模式
6.1 为什么需要自定义网络模式
6.2 创建自定义网络
6.3 删除docker网络
6.4 创建指定容器的ip 一、Docker网络实现原理
暴露端口
docker使用Linux桥接在宿主机虚拟一个Docker容器网桥docker0docker启动一个容器时会根据Docker网桥的网段分配一个IP地址称为Container-IP 同时Docker网桥是每个容器的默认网关因为在同一宿主机内的容器都接入同一个网桥这样容器之间就能通过容器的Container-IP直接通信。 Docker网桥是宿主机虚拟出来的并不是真实存在的网络设备外部网络是无法寻址到的这也意味着外部网络无法直接通过Container-IP访问到容器。 如果容器希望外部访问能够访问到可以通过映射容器端口到宿主主机端口映射即docker run创建容器时候通过 -p 或 -P 参数来启动访问容器的时候就通过【宿主机IP】:【容器端口】访问容器。
docker run -d –name test1 -P nginx
#(大写P)启动容器时将容器端口递增映射到主机上(端口范围为49153开始后面自增)宿主机的端口:容器端口
docker run -d –name test2 -p 55555:80 nginx
#(小写p)启动容器时将容器端口映射为主机端口的55555端口//后面都没有加/bin/bash为啥
//加了/bin/bash后会影响到commad命令镜像里面的命令默认是启动nginx加了/bin/bash后相当于有多条命令但是它只会执行一台命令所有就不执行启动nginx的命令。
//如果加了/bin/bash,那怎么启动容器中的nginx呢
#可以直接进入容器执行nginx启动或则 docker exec -it 【容器名】 /bin/bash -c nginx还可以查看iptables的映射关系
iptables -nL -nat然后可在浏览器访问宿主机ip加映射的端口 查看容器日志信息
docker logs 【容器ID】或者cd /var/lib/docker/containers/
目录下找到指定的容器ID目录然后进入找到一个json.log的文件这里面也会存在日志平常删除直接删除这里面即可。二、Docker的网络模式
Host 容器将不会虚拟出自己的网卡配置自己的IP等而是使用宿主机的IP和端口。
Container:创建的容器不会创建自己的网卡配置自己的IP而是和指定的容器共享IP、端口范围。
None 该模式关闭了容器的网络功能
Bridge 默认为该模式此模式会为每一个容器分配、设置IP等并将容器连接到一个docker0虚拟网桥通过docker0网桥以及iptables nat表配置与宿主通信。
自定义网络 自己创建一个虚拟网桥可以任意分配容器的ip地址。
安装Docker时他会自动创建三个网络Bridge默认、none、host
docker network ls #或 都可以查看docker网络列表docker network list使用docker run 创建Docker容器时可以用–net 或 –network 选项指定容器的网络模式
Host模式 使用–nethost指定none模式 使用–netnode指定container模式 使用–netcontainer:NAME_or_ID 指定bridge模式 使用–netbridge指定默认设置可省略
1、host模式
1.1 host模式原理 相当于VMware中的桥接模式与宿主机在同一个网络但没有独立IP。 docker使用了linux的Namespaces技术来资源隔离如PID namespace隔离进程mount namespace隔离文件系统network namespace隔离网络等 一个network namespace提供了一份独立的网络环境包括网卡路由iptable规则等都与其它的network namespace隔离一个docker容器一般会分配一个独立的network namespace但如果启动容器的时候使用host模式那么这个容器将不会获得一个独立的network namespace而是和宿主机共用一个network namespace容器将不会虚拟出自己的网卡配置自己的ip等而是宿主机的ip和端口。 host模式容器的端口就相当于主机的端口容器和主机之间一开localhost通信。
特点
安全性可能存在偏差不如bridge高。端口使用率较少共用端口不能重复不需要映射iptables规则容器端口相当于主机端口 1.2 host模式实操
docker run -d –name web1 –net-host nginx
#创建容器web1指定网络模式为hostfirefox http://20.0.0.55:80
#访问宿主机的ip和80端口则可以访问到web3的nginx服务2、Container模式 container模式指定新创建的容器和已经存在的一个容器共享一个network namespace而不是和宿主机共享。 新创建的容器不会创建自己的网卡配置自己的IP而是和一个指定的容器共享IP、端口范围等同样两个容器除了网络方面其它的如文件系统进程列表等还是隔离的。 两个容器的进程可以通过lo网卡设备通信.
特点
节省网络资源容器内部的端口还是共用。使用率较少。 2.2 container模式实操
docker run -itd –name test1 centos:7 /bin/bash
#基于镜像centos:7创建一个名为test1的容器docker inspect -f {{.State.Pid}} test1
#查看容器的pid号ls -l /proc/pid号/ns
#查看该容器的命名空间编号docker run -itd –name test2 –netcontainer:test1 centos:7
#创建test2容器使用container模式和test1共享network namespacedcoker inspect -f {{.State.Pid}} test2
#查看test2容器的pidls -l /proc/pid号/ns
#查看该容器的命令空间编号3、none模式 使用none模式Docker容器拥有自己的network namespace但是并不为docker容器进行任何网络配置。 也就是说这个docker容器没有网卡IP、路由等信息这种网络模式下容器只有lo回环网络。没有其它网卡。这种类型的网络没有办法联网 该容器将完全独立于网络用户可以根据需要为容器添加网卡此模式拥有所有端口。
特点
安全完全隔离 4、bridger模式
4.1 bridge模式的原理
bridge模式是docker 的默认网络模式。不同–net参数就是bridge模式
相当于Vmware中的nat模式。容器使用独立network namespace并连接到docker0 虚拟网卡通过dcoker0网桥以及iptables nat表配置与宿主机通信 此模式会为每一个容器分配 network namespace设置ip等并将一个主机上的docker容器连接到一个虚拟网桥上。
当docker进程启动时会在主机上创建一个名为docker0的虚拟网桥此主机上启动的docker容器会连接到这个虚拟网桥上 虚拟网桥的工作方式和物理交换机类似这样主机上的所有容器就通过交换机连在了一个二层网络中。从docker0子网中分配一个ip给容器使用并设置docker0的ip地址为容器的默认网关 在主机上创建一对虚拟网卡veth pair设备。veth设备总是 成对出现他们组成了一个数据的通道数据从一个设备进入就会从另一个设备出来 因此veth设备常用来连接两个网络设备。 docker将veth pari 设备的一端放在新创建的容器中并命令为eth0容器的网卡另一端放在主机中以 veth* 这样类似的名字命名并将这个网络设备加入到docker0网桥中 可以通过brctl show 命令查看。使用docker run -p 时docker实际是在ipyables做了DNAT规则实现端口转发功能 可以使用iptables -t nat -vnL 查看。
特点
容器都有自己的network端口需要veth对来连接容器和host主机需要通过iptables来映射容器端口到主机上。 4.2 bridge实操
docker run -itd –name test3 centos:7 /bin/bash
#创建时不需要指定网络模式。默认即可docker inspect test3 |grep -i networkmode
#过滤出网络模式5、overlay模式
overlay网路模式是一种叠加式的网络模式。
使用外部的服务组件作为网关和代理例如ingress。一般和docker-swarm结合
6、自定义网络模式
6.1 为什么需要自定义网络模式
因为在我们使用bridge模式的时候是无法支持指定IP运行docker的
docker run -itd –name test4 –network bridge –ip 172.17.0.10 centos:7 /bin/bash
#启动一个容器指定为bridge模式并且指定该容器的ip为172.17.0.10.所以说bridge无法手动指定容器的ip只能依靠docker0来分配这也太智能了吧
6.2 创建自定义网络
因为前面讲了不能自定义创建容器的ip地址全是docker0所安排的既然这样那我们就自己创建一个docker0出来但是名字不能重复ip 也不能。创建出来的默认也是bridge模式。想自定义其它网络的也可以。
特点
可以自定网桥ip自定义容器的ip。
docker network create –subnet172.18.0.0/16 –opt com.docker.network.bridge.namedocker1 mynetwork
#创建指定的网桥的ip地址和名称以及显示的网络模式名称//docker1为执行ifconfig -a 命令时显示的网卡名如果不使用 –opt 参数指定此名称那你在使用ifconfig -a 命令查看网络信息时看到的是类似 br-110add5ad5fsef 这样的名字这显然不好记。
//mynetwork 为执行docker network list 命令时显示的bridge网络模式名称。6.3 删除docker网络
docker network ls
#查看所有网卡和他的iddocker network rm 【网卡ID】
#删除某个指定的网卡6.4 创建指定容器的ip
docker run -itd –name test4 –net mynetwork –ip 172.18.0.10 centos:7 /bin/bash#创建启动容器网络模式指向myneywork(可以不加)并给予指定ip地址。
- 上一篇: 达州 网站建设百度图片识别在线使用
- 下一篇: 达州网站开发qinsanw免费培训机构管理系统
相关文章
-
达州 网站建设百度图片识别在线使用
达州 网站建设百度图片识别在线使用
- 技术栈
- 2026年03月21日
-
达内网站开发荆州网站建设 众火网
达内网站开发荆州网站建设 众火网
- 技术栈
- 2026年03月21日
-
搭建专业网站服务器seo技术顾问
搭建专业网站服务器seo技术顾问
- 技术栈
- 2026年03月21日
-
达州网站开发qinsanw免费培训机构管理系统
达州网站开发qinsanw免费培训机构管理系统
- 技术栈
- 2026年03月21日
-
答题助手网站怎么做的做网站需要一些什么工具
答题助手网站怎么做的做网站需要一些什么工具
- 技术栈
- 2026年03月21日
-
打广告专用图搜索引擎排名优化是什么意思
打广告专用图搜索引擎排名优化是什么意思
- 技术栈
- 2026年03月21日






