进阶Docker4:网桥模式、主机模式与自定义网络

这篇具有很好参考价值的文章主要介绍了进阶Docker4:网桥模式、主机模式与自定义网络。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

 网络相关

子网掩码

网关

规则

docke网络配置

bridge模式

host模式

创建自定义网络(自定义IP)


进阶Docker4:网桥模式、主机模式与自定义网络,网络,服务器,运维

 网络相关


  • IP
  • 子网掩码
  • 网关
  • DNS
  • 端口号

子网掩码


互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。
IP 地址在设计时就考虑到地址分配的层次特点,将每个 IP 地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
子网掩码是 “255.255.255.0” 的网络:
最后面一个数字可以在 0~255 范围内任意变化,因此可以提供 256 IP 地址。但是实际可用的 IP
址数量是 256-2 ,即 254 个,因为主机号不能全是 “0” 或全是 “1”
子网掩码是 “255.255.0.0” 的网络:
后面两个数字可以在 0~255 范围内任意变化,可以提供 255² IP 地址。但是实际可用的 IP 地址数量
255²-2 ,即 65023 个。 IP 地址的子网掩码设置不是任意的。如果将子网掩码设置过大,也就是说子网范围扩大,那么,根
据子网寻径规则,很可能发往和本地主机不在同一子网内的目标主机的数据,会因为错误的判断而
认为目标主机是在同一子网内,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正
确到达目标主机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网
内的机器之间的通信当做是跨子网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负
担,造成网络效率下降。
因此,子网掩码应该根据网络的规模进行设置。如果一个网络的规模不超过 254 台电脑,采用
“255.255.255.0” 作为子网掩码就可以了,现在大多数局域网都不会超过这个数字,因此
“255.255.255.0” 是最常用的 IP 地址子网掩码;假如在一所大学具有 1500 多台电脑,这种规模的局
域网可以使用 “255.255.0.0”

网关


网关实质上是一个网络通向其他网络的IP地址。 路由器(Windows下叫默认网关,网关就是路由,路由就是网关不要蒙)

规则

计算机的 IP 地址由两部分组成,一部分为网络标识,一部分为主机标识,同一网段内的计算机网络部分相同,主机部分不同同时重复出现。
路由器连接不同网段,负责不同网段之间的数据转发,交换机连接的是同一网段的计算机。通过设置网络地址和主机地址,在互相连接的整个网络中保证每台主机的IP 地址不会互相重叠,即 IP 地址具有了唯一性。
在计算机网络中,主机 ID 全部为 0 的地址为网络地址,而主机 ID 全部为 1 的地址为广播地址
2 个地址是不能分配给主机用的。

docke网络配置


当你安装了docker,它会自动创建3个网络,可以使用 docker network ls 命令来查看

  • bridge
  • host
当你运行一个容器的时候,可以使用 --network 参数来指定你的容器连接到哪一个网络。

bridge模式


Docker 进程启动时,会在主机上创建一个名为 docker0 的虚拟网桥,此主机上启动的 Docker 容器会连接到这个虚拟网桥上。
虚拟网桥的工作方式和物理交换机类似,这样主机上的所有容器就通过交换机连在了一个二层网络中。
docker0 子网中分配一个 IP 给容器使用,并设置 docker0 IP 地址为容器的默认网关。
在主机上创建一对虚拟网卡 veth pair 设备, Docker veth pair 设备的一端放在新创建的容器中,并命名为eth0 (容器的网卡),另一端放在主机中,以 vethxxx 这样类似的名字命名,并将这个网络设备加入到docker0 网桥中。
bridge 模式是 docker 的默认网络模式,不写 --net 参数,就是 bridge 模式。
进阶Docker4:网桥模式、主机模式与自定义网络,网络,服务器,运维
  • 查看bridge信息
docker inspect brid
  • 打开容器
docker run -itd --net=bridge --name cname iname
  • 查看docker0网桥
  • 查看容器网络
ip addr
ifconfig
docker0 就像是一个路由器,容器就像是路由器下的设备,它们在同一个网段内,可以互相 ping 通。
每个容器都有自己独立的ip,如果外部需要访问 需要设置端口映射  默认模式都是网桥
  • 外部访问

设置端口映射

docker run -itd --name bridge03 -p 8081:8080 spring:1.0

-p参数可以出现多次,绑定多个端口号

docker run -itd --name bridge05 -p 8082:8080 -p 8083:8080 spring:1.0

 使用mysql 

docker run -it --name c1 centos

mkdir -p /mysql/{conf,data}


#授予用户所有权限
grant all on *.* to dbl@'%' identified by '123456';

修改了application.xml 文件ip地址后,重启容器 ip 地址会发生改变。

注: 网桥中的ip只能自动生成

host模式


如果启动容器的时候使用 host 模式,那么这个容器将不会获得一个独立的 Network Namespace ,而是和宿主机共用一个Network Namespace
容器将不会虚拟出自己的网卡,配置自己的 IP 等,而是使用宿主机的 IP和端口。
但是,容器的其他方面,如文件系统、进程列表等还是和宿主机隔离的;
比如主机端口号是8080那么容器的端口号也是8080,共用一个端口号。
进阶Docker4:网桥模式、主机模式与自定义网络,网络,服务器,运维

 主机模式 容器与主机共用端口与网络

docker run -itd \
--name t1 \
--net host \
tomcat:8.5.20

创建自定义网络(自定义IP)


  • 支持自定义ip
  • 支持容器名的方式

手动指定网段

docker network create --subnet=172.20.0.0/16 mynet

固定ip启动容器

docker run -it \
--name t1 \
-p 8080:8080 \
-v /soft:/usr/local/tomcat/webapps \
--net mynet \
--ip 172.20.0.100 \
tomcat:8.5.20

 
docker run \
--name m1 \
-v /mysql/conf/my.cnf:/etc/my.cnf \
-v /mysql/data:/var/lib/mysql \
--privileged=true \
-e MYSQL_ROOT_PASSWORD=123456 \
--net mynet \
--ip 172.20.0.99 \
-d mysql/mysql-server:5.7

指定两个不同的容器

----------------mynet
docker run  -it \
--name c1 \
--net mynet \
--ip 172.20.100.100 \
-d centos

----------------bridge
docker run  -it \
--name c2 \
-d centos

让c1连接到bridge网络中
docker network connect bridge c1

进阶Docker4:网桥模式、主机模式与自定义网络,网络,服务器,运维

测试

docker exec -it c1 ping mynet

docker exec -it c1 ping 172.20.100.100

跨网桥测试

docker exec -it c2 ping mynet

进阶Docker4:网桥模式、主机模式与自定义网络,网络,服务器,运维文章来源地址https://www.toymoban.com/news/detail-805156.html

到了这里,关于进阶Docker4:网桥模式、主机模式与自定义网络的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 解决---设备“VMnet0”上的网桥没有运行。该虚拟机无法与此主机或网络上的其他主机进行通信。 无法连接虚拟设备“Ethernet0”。

    quad quad 由于之前安装过VMware,但是卸载后从新安装导致 虚拟机 的虚拟网络编辑器没有桥接模式,即只有 网络适配器 网络类型 VMnet1 Host-only(仅主机) VMnet8 NAT quad quad 这导致 你所安装的虚拟机( 如 Ubuntu) 就不能与你的电脑再同一个网段,也就是虚拟机与你的电脑不能够

    2024年02月01日
    浏览(49)
  • (四)Docker进阶网络模式与特权指令

    Docker支持多种网络模式,包括bridge、host、none和overlay等。不同的网络模式有不同的特点和适用场景,下面对这些网络模式进行详细的介绍。 Bridge模式 Bridge模式是Docker的默认网络模式。在Bridge模式下,Docker会创建一个虚拟的Bridge网络,Docker容器会自动加入这个网络中。Bridge网

    2024年02月09日
    浏览(29)
  • Docker基本操作&与自定义镜像&Docker-Compose与Docker镜像仓库

    目录 一.基本操作 1.镜像操作 1.1.镜像名称 1.2.镜像命令 1.3.案例-拉取、查看镜像 1.4.案例-保存、导入镜像 2.容器操作 2.1.容器相关命令 2.2.案例-创建并运行一个容器 2.3.案例-进入容器,修改文件 2.4.小结 3.数据卷(容器数据管理) 3.1.什么是数据卷 3.2.数据集操作命令 3.3.创建和

    2024年02月03日
    浏览(38)
  • 【Docker】网络模式➕自定义网络

    接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome 的Huihui\\\'s Code World ! !🥳🥳 一.Docker网络模式的介绍 二. 网桥模式【bridge】 1.查看网络模式 2.查看bridge信息 3.打开容器 4.外部访问 5.查看容器网络 三.主机模式【host】  四.使用网桥模式完成容器间的互相通信 1

    2024年01月17日
    浏览(30)
  • Docker进阶 - 7. docker network 网络模式之 host

    目录 1. host 模式概述 2. host模式代码语法 3. docker inspect 查看 bridge/host模式 容器元数据 4. ip addr 进入 tomcat83 (host模式) 容器内部查看容器ip 5. 如何访问启动 tomcat83 (host模式) 1. host 模式概述 直接使用宿主机的IP地址 与外界进行通信,不再需要额外进行NAT转换。容器将不会获得一

    2024年02月11日
    浏览(23)
  • Docker学习:容器五种(3+2)网络模式 | bridge模式 | host模式 | none模式 | container 模式 | 自定义网络模式详解

    本讲是从Docker系列讲解课程,单独抽离出来的一个小节,重点介绍 容器网络模式 , 属于了解范畴,充分了容器的网络模式, 更有助于更好的理解Docker的容器之间的访问逻辑 。 疑问: 为什么要了解容器的网络模式? 首先, 容器之间 虽然不是物理隔离,但是它们彼此之间

    2024年02月09日
    浏览(33)
  • docker4_创建容器

    进入容器base_centos 创建三个docker容器,分别作为三个结点(注意端口的设置) gpb_hdp_node3 容器 gpb_hdp_node2 容器 删除容器 查看已经创好的容器 gpb_hdp_node1容器(最后创建) 问题1:容器名和 hostname的区别 问题2:为什么要配置配置hosts 连接进入node1容器 查看/etc/hosts文件 具体的容器

    2024年02月06日
    浏览(26)
  • unraid docker桥接模式打不开页面,主机模式正常

    因为用不上核显驱动,解压缩功能也用不上,官方版本的filebrowser还小巧一些,18m左右 安装的时候总是启动不了,但是使用subnet模式是可行的 仔细观察,我好像所有的docker都是使用的host模式,怀疑是我的unraid就是用不了桥接模式,果然在论坛发现的原因, https://forums.unraid

    2024年02月14日
    浏览(31)
  • VMWare Workstation 17 Pro 网络设置 桥接模式 网络地址转换(NAT)模式 仅主机模式

    博文目录 桥接模式: 主机与虚拟机对等, 虚拟机注册到主机所在的局域网, 会占用该网络的IP 该局域网内的所有机器, 包括主机和其他机器和所有虚拟机, 均可互相访问 虚拟机可以访问互联网 网络地址转发(NAT)模式: 可以认为是在主机下建立了一个虚拟局域网, 虚拟机注册到该网

    2024年02月12日
    浏览(34)
  • docker导致远程主机无法访问,docker网段冲突导致主机网络异常无法访问

    背景:         公司分配的虚拟机是172网段的,在上面部署了docker、docker-compose、mysql、redis,程序用docker-compose管理,也平稳运行了一个多周,某天用FinalShell连主机重启docker容器,忽然断开连接,然后虚拟机就无法远程连接了,公司平台组通过后台连接虚拟机正常,网络正常

    2024年02月06日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包