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

Docker 网络类型与容器通信

Docker 网络类型与容器通信

一、Docker 网络概述

Docker 在安装时会自动创建三种网络:

  • none:无网络
  • host:共享宿主机网络栈
  • bridge:默认网络类型,通过 docker0 网桥连接

查看网络列表:

docker network ls

二、Docker 网络类型

1、None 网络
  • 容器仅有一个 lo 回环接口,无外部网络连接
  • 适用于高安全性、无需网络访问的场景。
[root@docker ~]# docker pull busybox
[root@docker ~]# docker run --name wil1 -it --rm --network=none busybox:latest

在这里插入图片描述

2、Host 网络
  • 容器共享宿主机网络栈,性能最佳
  • 存在端口冲突风险
[root@docker ~]# docker run --name wil1 -it --rm --network=host busybox:latest

在这里插入图片描述

3、Bridge 网络(默认)
  • 容器通过 docker0 网桥连接
  • 每个容器分配一个虚拟网卡(veth pair),一端在容器内,一端在 docker0
[root@docker ~]# docker run --name wil1 -it --rm busybox:latest

在这里插入图片描述

[root@docker ~]# docker network inspect bridge

在这里插入图片描述

三、自定义 Bridge 网络

1、创建自定义网络
[root@docker ~]# docker network create --driver bridge --subnet 172.20.0.0/16 --gateway 172.20.0.1 wiltjer
[root@docker ~]# docker network ls

在这里插入图片描述

2、指定容器使用自定义网络和 IP
[root@docker ~]# docker run --name wil1 -it --rm --network=wiltjer busybox:latest

在这里插入图片描述

3、跨网络通信
  • 默认不同网络的容器无法通信
[root@docker ~]# docker run --name wil1 -it --network=wiltjer busybox:latest

在这里插入图片描述

  • 可通过 docker network connect 为容器添加多个网络
[root@docker ~]# docker network connect wiltjer wil2
[root@docker ~]# docker exec -it wil2 sh

在这里插入图片描述

四、容器间通信方式

1、基于 IP 地址
  • 在同一网络中的容器可直接通过 IP 访问
  • 案例如上
2、基于容器名(Docker DNS)
  • 使用 --name 命名容器
  • Docker 内嵌 DNS 服务自动解析容器名
  • 仅支持自定义 bridge 网络,默认 bridge 不支持
[root@docker ~]# docker run --name wil1 -it --network=wiltjer busybox:latest
[root@docker ~]# docker run --name wil2 -it --network=wiltjer busybox:latest

在这里插入图片描述

3、Joined 容器
  • 多个容器共享同一网络栈
  • 可通过 127.0.0.1 互相访问
[root@docker ~]# docker run --name wil3 -it --network=wiltjer busybox:latest
[root@docker ~]# docker run --name wil4 -it --network=container:wil3 busybox:latest

在这里插入图片描述

五、容器与外部网络通信

1、容器访问外部(NAT)
  • 容器通过 docker0 和宿主机 NAT 规则访问外网
2、外部访问容器
  • 使用 host 网络:容器直接使用宿主机网络
  • 端口映射:将容器端口映射到宿主机
[root@docker ~]# docker run --name tjer -itd -p 80:80 httpd:latest

在这里插入图片描述

六、总结

网络类型特点适用场景
None无网络,只有 lo高安全、无需网络
Host共享宿主机网络栈,性能高高性能、不介意端口冲突
Bridge(默认)通过 docker0 网桥连接大多数容器场景
自定义 Bridge支持 DNS 解析、更灵活的网络管理多容器协作、需名称解析
http://www.dtcms.com/a/477680.html

相关文章:

  • Oracle 21C 部署ogg踩过的坑
  • vue3 中播放.flv视频
  • Oracle AWR报告中Load Profile源码
  • 电子商务网站开发的任务书企业文化心得体会
  • 溧阳网站开发kindeditor代码高亮 wordpress
  • CSS常见问题
  • nginx 负载均衡配置
  • 原生 iOS 开发全流程实战,Swift 技术栈、工程结构、自动化上传与上架发布指南
  • Apache开源许可证:深度解析与实践指南
  • Python Web开发——HTTP协议简介
  • 病理切片可解释性分析-细胞类型、核形态与细胞间相互作用
  • 【C语言】杨辉三角:数学之美与编程实现的完美结合
  • 盐城网站建设策划方案杭州企业求网站建设
  • 基于.NET Framework 4.0的串口通信
  • Mybatis Log Free插件使用
  • asp网站可运行jsp吗专做立体化的网站
  • angie未生成coredump文件
  • 【leetcode刷题007】leetcode116、117
  • 南昌网站推广¥做下拉去118cr如何做实验室网站
  • 从0开始搭建Vue3项目
  • 【知识】Linux将多条指令合并为一条执行
  • 将 MapReduce 程序打成 JAR 包并在 Linux 虚拟机的 Hadoop 集群上运行
  • 06_Miniconda零基础安装配置指南:打造高效的Python开发环境
  • 量子计算与AI融合:材料科学新突破!!
  • 徐州网站建设方案咨询外贸牛
  • 顶级 AI 模型横评:智能、性能与价格等方面全面对比
  • Vuex 详细用法(Vue2 和 Vue3)
  • 注册公司网站如何注册黑龙江公共资源交易网官网
  • 如何将iPhone上的HEIF图像下载到电脑
  • 欧洲宇航局使用Varjo XR头戴设备为宇航员提供虚拟现实空间站任务训练