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

08_docker网络

概述

我们一般用下面两个命令进行查看网络信息

ifconfigip add

在这里插入图片描述
在这里插入图片描述

在CentOS7的安装过程中如果有选择相关虚拟化的的服务安装系统后,启动网卡时会发现有一个以网桥连接的私网地址的virbr0网卡(virbr0网卡:它还有一个固定的默认IP地址192.168.122.1),是做虚拟机网桥的使用的,其作用是为连接其上的虚机网卡提供 NAT访问外网的功能。
我们之前学习Linux安装,勾选安装系统的时候附带了libvirt服务才会生成的一个东西,如果不需要可以直接将libvirtd服务卸载,
yum remove libvirt-libs.x86_64

基本命令

在这里插入图片描述
为神马学这个内容?

  1. 容器间的互联和通信以及端口映射
  2. 容器IP变动时候可以通过服务名直接网络通信而不受到影响

网络模式

在这里插入图片描述

1 先启动两个ubuntu容器实例2 docker inspect 容器ID or 容器名字3  关闭u2实例,新建u3,查看ip变化
docker run -d ubuntu
docker inspect 容器ID or 容器名称 | tail -20

结论: docker容器内部的ip是有可能会发生改变的

在这里插入图片描述
在这里插入图片描述

案例说明

bridge

Docker 服务默认会创建一个 docker0 网桥(其上有一个 docker0 内部接口),该桥接网络的名称为docker0,它在内核层连通了其他的物理或虚拟网卡,这就将所有容器和本地主机都放到同一个物理网络。Docker 默认指定了 docker0 接口 的 IP 地址和子网掩码,让主机和容器之间可以通过网桥相互通信。

 查看 bridge 网络的详细信息,并通过 grep 获取名称项
docker network inspect bridge | grep name

ifconfig
在这里插入图片描述
1 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0),Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址,称为Container-IP,同时Docker网桥是每个容器的默认网关。因为在同一宿主机内的容器都接入同一个网桥,这样容器之间就能够通过容器的Container-IP直接通信。

2 docker run 的时候,没有指定network的话默认使用的网桥模式就是bridge,使用的就是docker0。在宿主机ifconfig,就可以看到docker0和自己create的network(后面讲)eth0,eth1,eth2……代表网卡一,网卡二,网卡三……,lo代表127.0.0.1,即localhost,inet addr用来表示网卡的IP地址

在这里插入图片描述

在这里插入图片描述

docker run -d -p 8081:8080 --name tomcat81 billygoo/tomcat8-jdk8docker run -d -p 8082:8080 --name tomcat82 billygoo/tomcat8-jdk8

在这里插入图片描述

host

直接使用宿主机的 IP 地址与外界进行通信,不再需要额外进行NAT 转换。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

http://宿主机IP:8080/

在CentOS里面用默认的火狐浏览器访问容器内的tomcat83看到访问成功,因为此时容器的IP借用主机的,
所以容器共享宿主机网络IP,这样的好处是外部主机与容器可以直接通信。

none

在none模式下,并不为Docker容器进行任何网络配置。
也就是说,这个Docker容器没有网卡、IP、路由等信息,只有一个lo
需要我们自己为Docker容器添加网卡、配置IP等。

禁用网络功能,只有lo标识(就是127.0.0.1表示本地回环)

docker run -d -p 8084:8080 --network none --name tomcat84 billygoo/tomcat8-jdk8

docker run -d -p 8084:8080 --network none --name tomcat84 billygoo/tomcat8-jdk8
进入容器内部查看

container

在这里插入图片描述
在这里插入图片描述

Alpine Linux 是一款独立的、非商业的通用 Linux 发行版,专为追求安全性、简单性和资源效率的用户而设计。 可能很多人没听说过这个 Linux 发行版本,但是经常用 Docker 的朋友可能都用过,因为他小,简单,安全而著称,所以作为基础镜像是非常好的一个选择,可谓是麻雀虽小但五脏俱全,镜像非常小巧,不到 6M的大小,所以特别适合容器打包。

自定义网络

在这里插入图片描述

整体说明

从其架构和运行流程来看,Docker 是一个 C/S 模式的架构,后端是一个松耦合架构,众多模块各司其职。

Docker 运行的基本流程为:

1 用户是使用 Docker Client 与 Docker Daemon 建立通信,并发送请求给后者。
2 Docker Daemon 作为 Docker 架构中的主体部分,首先提供 Docker Server 的功能使其可以接受 Docker Client 的请求。
3 Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个 Job 的形式的存在。
4 Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graph driver将下载镜像以Graph的形式存储。…


http://www.mrgr.cn/news/69639.html

相关文章:

  • Matplotlib库中show()函数的用法
  • 在ubuntu上安装ubuntu22.04并ros2 humble版本的docker容器记录
  • 嵌入式课程day14-C语言指针进阶
  • GIT:如何查找已删除的文件的历史记录
  • idea 删除本地分支后,弹窗 delete tracked brank
  • 数据结构-串
  • LeetCode 第 423 场周赛个人题解
  • 全国智能网联招标项目一周速览(2024年11月10日)
  • 基于Spring Boot的计算机课程管理:工程认证的实践
  • WPS Office Excel 转 PDF 后图片丢失的解决方法
  • go桌面框架Fyne最全api文档
  • 释放创作潜力!Flux 模型现已集成至 ComfyUI,快来体验!
  • 2024程序员,转行还是不转行,必须严肃想一想?(一条120W+阅读的讨论)
  • SpringCloudalibaba 集成 Knife4j 的时候出现多余的 前缀
  • Java | Leetcode Java题解之第554题砖墙
  • 动态规划(简单多状态 dp 问题 1.按摩师 2.打家劫舍 II 3. 删除并获得点数 4.粉刷房子 5.买卖股票的最佳时机(全系列))
  • php 之添加图片水印,根据比例计算水印的新尺寸
  • 【计网】实现reactor反应堆模型 --- 处理数据发回问题 ,异常处理问题
  • 【Linux】【线程操作与同步】汇总整理
  • 鸿蒙next版开发:ArkTS组件通用属性(图形变换)
  • AndroidStudio-视图基础
  • 链表的使用
  • 《Agent 工作流 2025》
  • AI与OCR:数字档案馆图像扫描与文字识别技术实现与项目案例
  • 01_docker安装
  • STM32各模块