星途物语 星途物语
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)

星途物语

尚记时,记之
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)
  • 随手记录

    • QPS优化记录
    • 阿里云SLB演示
    • DDOS预防
    • Linux内核优化
    • rsync同步守护进程
    • NFS文件同步
    • Tomcat升级
    • 编译安装mysql后添加到systemd管理
    • 防火墙笔记
    • python自动化巡检服务器
  • 故障处理

    • 处理防MIME攻击后出现的问题解决
  • MySQL学习笔记

    • MySQL5.7安装
    • MySQL常用操作语句
    • MySQL主从架构实施
    • MySQL主主架构实施
    • MySQL MHA高可用实施
    • MyCat读写分离
    • MySQL创建用户时的授权
    • MySQL备份
    • MySQL通配符
  • Nginx学习笔记

    • 状态码含义
    • 匹配优先级
    • Nginx常用操作
    • 添加第三方模块
    • 关于路径匹配
    • 转发和重写
    • 内置变量
    • Nginx配置文件结构
  • Tomcat学习笔记

    • 部署Tomcat
    • 修改发布目录
    • Tomcat调优
  • Redis学习笔记

    • 通过 tar.gz 包安装部署 redis
    • redis 配置文件
    • 哨兵集群
    • redis常用命令
    • 虚拟机安装 redis.tar.gz 遇到的问题
  • Ansible学习笔记

    • 部署和使用 ansible
    • ansible 自带的密码认证参数
    • 批量免密操作:批量分发公钥
    • 配置主机清单
    • ansible 小知识
    • 模块介绍
    • 剧本
    • 一键部署 rsync 环境
    • 批量安装一个tomcat
    • 批量安装一个nginx
    • 批量安装 zabbix-agent
  • Zabbix学习笔记

    • 部署 zabbix 服务端、客户端
    • 自定义监控
    • 触发器
    • 监控项类型
    • 简单检查模式
    • zabbix web 界面结构信息
    • 邮件报警
    • 微信报警
    • snmp 监控网络设备
    • 部署 zabbix 服务端、客户端
    • jmx 监控 java 应用
    • ipmi 监控硬件
    • 自动化注册
    • 监控项的主要项和相关项
    • percona 监控 mysql
  • Git学习笔记

    • 配置 git
    • 常用命令
  • GitLab学习笔记

    • 环境准备
    • 安装 gitlab
    • gitlab 忘记 root 管理员密码的处理办法
  • Jenkins学习笔记

    • 安装部署
    • jenkins 使用脚本完成项目构建
    • jenkins 自动构建最新项目
    • 将 jenkins 自动部署的结果返回给 gitlab
    • jenkins 上线 java 项目
    • jenkins pipeline
  • Docker学习笔记

    • 安装 docker
    • 配置 docker 源
    • docker 中的常见名词
    • 镜像管理命令
    • 容器管理命令
    • 创建容器
    • 数据卷
    • docker network
    • 搭建 LNMP
    • Dockerfile
    • Dockerfile 搭建 tomcat
    • docker 镜像磁盘扩容
    • docker composer
    • Harbor 私有镜像仓库
    • docker 面试题
    • docker desktop 运行时与虚拟机冲突
    • docker离线安装
  • Nexus学习笔记
  • Prometheus学习笔记

    • 核心组件
    • 工作原理
    • 安装和配置
    • 启动 Prometheus
    • PromQL 使用
    • 数据模型
    • Exporter
    • 演示服务
    • Grafana 数据可视化
    • Prometheus 告警
  • Kubernetes学习笔记

    • K8S的介绍
    • K8S集群环境的搭建
    • K8S资源管理
    • K8S的实战入门
  • 运维
  • Docker学习笔记
星途物语
2025-01-01

docker network

用于管理 Docker 容器的网络,帮助你创建、查看、修改和删除网络,以及管理容器与网络的连接

常用命令

列出所有网络:docker network ls

查看网络详细信息:docker network inspect <network_name or id>

删除网络:docker network rm <network_name or id>

连接容器到现有网络:docker network connect <network_name or id> <container_name or id>

断开容器与网络的连接:docker network disconnect <network_name or id> <container_name or id>

创建带有指定驱动的网络:docker network create --driver

  • bridge(默认):用于单机容器间的通信
  • host:容器与宿主机共享网络堆栈,适合需要极低网络延迟的场景
  • overlay:用于跨多个 Docker 主机的分布式网络,适合集群环境
  • macvlan:将容器暴露在物理网络上,并分配独立的 MAC 地址
  • container:容器与容器之间共享一个网络 IP 与端口空间
  • 示例:docker network create --driver bridge my-bridge-network

设置子网和网关(创建自定义网络时,你可以指定子网和网关):docker network create --subnet

​ docker network create --subnet 192.168.1.0/24 --gateway 192.168.1.1 my-custom-network

限制容器间通信(创建一个内部网络,该网络中的容器无法访问外部互联网):docker network create --internal

​ docker network create --internal my-internal-network

创建临时内存网络(创建临时文件系统挂载在容器中,适用于需要高效存储短期数据的场景):docker network create --tmpfs

​ docker run --network=my-custom-network --tmpfs /app/tmp my-container

查看容器连接的网络:docker network inspect <container>

​ docker network inspect my-container

网络模式介绍

Bridge 网络模式(默认模式)

简介:bridge 是 Docker 的默认网络模式,主要用于单个 Docker 主机上的容器通信

每个容器都连接到一个虚拟桥接网络上(通常是 docker0 网络),并通过该网络与其他容器进行通信

场景:适用于在同一台宿主机上运行的多个容器之间通信

特点:容器之间的通信受到网络隔离;可以通过宿主机 IP 和端口映射访问容器内的服务;适合一般的开发和测试场景

示例:docker run --name mycontainer -d nginx

优点:容器间有网络隔离,安全性高;配置简单,适合大多数单机容器通信需求

缺点:网络性能较低,增加了一个虚拟化层;如果需要容器与宿主机直接通信,需要使用端口映射

Host 网络模式

简介:在 host 模式下,容器与宿主机共享网络栈,容器不再拥有独立的网络命名空间,容器直接使用宿主机的 IP 地址和端口

场景:适用于需要极低网络延迟、无网络隔离的场景,通常用于性能要求较高的应用

容器和宿主机共享同一个网络命名空间,容器不会有独立的 IP 地址,容器的服务与宿主机的服务共享相同的 IP 和端口范围

特点:容器中的端口直接映射到宿主机的端口上,无需额外的端口映射配置;容器和宿主机的网络是共享的,因此所有网络接口和端口都直接暴露

docker run --network host -d nginx

优点:性能最佳,没有虚拟化网络层,延迟低,适合需要高性能的应用;容器可以轻松访问宿主机的所有网络资源

缺点:安全性差:由于容器和宿主机共享网络命名空间,没有网络隔离,可能会暴露不必要的网络服务;容器端口可能与宿主机上的其他服务发生冲突,尤其是在同一个端口上运行多个容器时

Overlay 网络模式

简介:overlay 网络模式用于在多台 Docker 主机上运行的容器之间创建一个分布式网络,适用于 Docker Swarm 或 Kubernetes 等集群环境。它允许跨主机的容器互相通信

场景:适用于需要跨多个 Docker 主机的分布式应用,例如 Swarm 集群或 Kubernetes 集群中的服务

每个容器分配一个虚拟 IP 地址,该 IP 地址可以在集群中其他主机上直接通信

容器通过 VXLAN 隧道技术进行通信,确保多主机之间的网络隔离

特点:容器之间可以跨主机通信,就像它们在同一台主机上一样;Docker 自动管理 VXLAN 隧道,不需要手动配置网络路由

docker network create -d overlay my-overlay-network

优点:容器可以在不同主机之间无缝通信,适合大规模分布式应用;提供网络隔离,可以确保各个应用的安全

缺点:性能较差,由于跨主机的通信需要使用隧道技术,网络延迟和性能会比单主机通信低;需要 Docker Swarm 或其他编排工具支持

Macvlan 网络模式

简介:macvlan 模式允许将容器直接暴露在物理网络上,并为每个容器分配一个独立的 MAC 地址,容器看起来像是直接连接到物理网络中的独立设备

场景:适用于需要让容器完全融入物理网络的场景,如容器需要直接使用物理网络的 DHCP 服务、或需要与物理网络中的其他设备进行通信

容器通过 macvlan 网络拥有独立的 MAC 地址和 IP 地址

容器可以与物理网络中的其他设备(如交换机、路由器)直接通信

特点:容器与物理网络完全融为一体,可以像普通物理主机一样与其他设备通信;容器可以通过物理网络访问外部资源,无需通过 NAT

docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 my-macvlan-network

优点:容器可以像物理机一样直接连接到网络,拥有独立的 MAC 地址和 IP 地址;容器与宿主机的网络完全隔离,容器不会影响宿主机网络

缺点:容器和宿主机之间通信困难,通常需要额外的路由配置;需要物理网络支持,配置复杂性较高

#Docker
数据卷
搭建 LNMP

← 数据卷 搭建 LNMP→

Theme by Vdoing | Copyright © 2025-2025 | 鄂ICP备2024086820号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式