docker network 自定义网络配置与管理指南

Docker 自定义网络配置与管理指南

1. 网络基础概念

Docker 网络是容器间通信和与外部世界交互的基础。通过自定义网络,可以实现容器间的隔离、静态 IP 分配和服务发现。

关键术语:

  • 子网(Subnet):IP 地址的逻辑分组,例如 172.18.0.0/16 包含 65,536 个 IP 地址
  • 网关(Gateway):子网的默认路由,通常是子网的第一个或最后一个 IP
  • CIDR 表示法IP/前缀长度,如 172.18.0.1/16 表示前 16 位为网络位
  • 桥接网络(Bridge):Docker 默认的网络驱动,用于容器间通信
2. 创建自定义网络

创建名为 net_base 的桥接网络,指定特定的子网和网关:

docker network create \--driver bridge \         # 使用桥接网络驱动(默认)--subnet 172.18.0.0/16 \  # 指定 IP 地址范围--gateway 172.18.0.254 \  # 手动指定网关 IP(子网内的最后一个可用 IP)net_base                  # 网络名称

参数说明

  • --driver bridge:创建基于 Linux 桥接的网络
  • --subnet:定义网络的 IP 地址范围
  • --gateway:设置网关 IP(必须在子网范围内)
3. 启动容器并分配静态 IP

在自定义网络中启动容器并分配静态 IP:

docker run -d \--name mysql-8.0.39 \        # 容器名称--network net_base \         # 连接到自定义网络--ip 172.18.0.1 \           # 指定静态 IP 地址(网关为 0.254,因此 0.1 可用)-p 3306:3306 \              # 端口映射-e MYSQL_ROOT_PASSWORD=XXXXXX \  # 环境变量设置-v /etc/localtime:/etc/localtime:ro \  # 时区同步-v /volume/mysql_8.0.39/data:/var/lib/mysql \  # 数据持久化mysql:8.0.39                # 镜像名称

注意事项

  • 静态 IP 必须在子网范围内且未被使用
  • 网关已设置为 172.18.0.254,因此 0.1 可安全分配给容器
  • 静态 IP 需要在创建容器时指定,无法在运行时修改
4. 网络管理常用命令

查看网络列表

docker network ls

查看网络详细信息

docker network inspect net_base

连接现有容器到网络

docker network connect net_base <容器名或ID>

断开容器与网络的连接

docker network disconnect net_base <容器名或ID>

删除自定义网络(需先断开所有容器):

docker network rm net_base
5. 验证网络配置

检查容器 IP 地址

docker inspect -f '{{.NetworkSettings.Networks.net_base.IPAddress}}' mysql-8.0.39

从容器内部测试网络连通性

# 测试网关连通性
docker exec -it mysql-8.0.39 ping 172.18.0.254# 测试其他容器连通性(如果有)
docker exec -it mysql-8.0.39 ping 172.18.0.3

查看容器网络配置

docker exec -it mysql-8.0.39 ip addr show eth0
6. 网络配置最佳实践
  1. 为不同环境创建独立网络:开发、测试、生产环境使用不同网络

  2. 合理规划 IP 地址:为每个服务预留足够的 IP 地址空间

  3. 避免网关 IP 冲突:手动指定网关时,确保与容器 IP 无重叠

  4. 使用网络别名简化通信

    docker run -d --name web --network net_base --network-alias www nginx
    

    其他容器可通过 www 域名访问该容器

  5. 使用 Docker Compose 管理复杂网络

    version: '3'
    networks:net_base:driver: bridgeipam:config:- subnet: 172.18.0.0/16gateway: 172.18.0.254
    services:mysql:image: mysql:8.0.39networks:net_base:ipv4_address: 172.18.0.1
    
7. 故障排查
  1. 容器无法访问外网

    • 检查网关 IP 是否正确配置
    • 确认宿主机防火墙允许容器网络流量
  2. 容器间无法通信

    • 检查容器是否连接到同一网络
    • 确认 IP 地址分配无冲突
    • 使用 docker network inspect 检查网络配置
  3. 静态 IP 分配失败

    • 确保指定的 IP 在子网范围内
    • 使用 docker network inspect 查看已分配的 IP

通过合理使用自定义网络和静态 IP 分配,可以构建出结构清晰、易于管理的容器网络环境。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/82060.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux strace调式定位系统问题

strace 的基本功能 strace 的主要功能包括&#xff1a; 跟踪系统调用&#xff1a;显示进程执行时调用的系统函数及其参数和返回值。监控信号&#xff1a;记录进程接收到的信号。性能分析&#xff1a;统计系统调用的执行时间和次数。调试支持&#xff1a;帮助定位程序崩溃、性…

告别手抖困扰:全方位健康护理指南

手抖&#xff0c;医学上称为震颤&#xff0c;是常见的身体症状&#xff0c;可能由多种原因引发&#xff0c;了解其成因并采取科学护理措施&#xff0c;对改善症状、维护健康至关重要。 生理性手抖往往因情绪激动、过度劳累、大量饮用咖啡或酒精等引起&#xff0c;这种手抖通常较…

华为2025年校招笔试真题手撕教程(一)

一、题目 输入&#xff1a; 第一行为记录的版本迭代关系个数N&#xff0c;范围是[1&#xff0c;100000]; 第二行到第N1行&#xff1a;每行包含两个字符串&#xff0c;第一个字符串为当前版本&#xff0c;第二个字符串为前序版本&#xff0c;用空格隔开。字符串包含字符个数为…

Qt 的多线程

Qt 中的多线程主要用于处理耗时操作&#xff0c;避免阻塞主线程&#xff08;UI 线程&#xff09;&#xff0c;从而提高程序的响应性和运行效率。以下是 Qt 多线程的相关技术总结&#xff1a; 常见的多线程实现方式 继承 QThread 类 &#xff1a;最基础的实现方式&#xff0c;具…

基于ITcpServer/IHttpServer框架的HTTP服务器

https://www.cnblogs.com/MuZhangyong/p/16839231.html 在基于ITcpServer/IHttpServer框架的HTTP服务器实现中,OnBody方法主要用于接收HTTP请求体数据,而触发HTTP响应通常是在OnMessageComplete方法中完成。以下是完整的响应触发机制说明: sequenceDiagramClient->>…

Windows 下 Qt 项目配置 FFmpeg 简明指南

一、作用 在qt项目中配置ffmpeg库 二、步骤 1、直接使用已经编译好的ffmpeg库文件&#xff0c;分为win32版本和win64版本&#xff1b; 2、win32版本下载地址&#xff1a;https://github.com/sudo-nautilus/FFmpeg-Builds-Win32/releases/tag/latest 3、win64版本下载地址&a…

Attu下载 Mac版与Win版

通过Git地址下载 Mac 版选择对于的架构进行安装 其中遇到了安装不成功&#xff0c;文件损坏等问题 一般是两种情况导致 1.安装版本不对 2.系统权限限制 https://www.cnblogs.com/similar/p/11280162.html打开terminal执行以下命令 sudo spctl --master-disable安装包Git下载地…

SpringBoot3集成Oauth2.1——5资源地址配置

配置问题说明 如下所示&#xff0c;代码配置了两个&#xff0c;过滤器&#xff0c;一个是资源保护&#xff0c;一个是不保护。 /** Description: 配置需要保护的资源* author: 胡涛* mail: hutao_2017aliyun.com* date: 2025年5月23日 下午2:28:20*/BeanOrder(2)public Securi…

Python urllib.parse 模块中的 urljoin 方法

Python urllib.parse 模块中的 urljoin 方法 urljoin 是 Python 标准库中 urllib.parse 模块的一个方法&#xff0c;用于将基础 URL 和相对路径拼接成完整的 URL。它会根据传入的基础 URL 自动处理协议、域名以及路径的部分匹配逻辑。 以下是关于该方法的具体说明和示例&…

AI大模型和SpringAI简介

一、Spring AI 简介 SpringAI整合了全球&#xff08;主要是国外&#xff09;的大多数大模型&#xff0c;而且对于大模型开发的三种技术架构都有比较好的封装和支持&#xff0c;开发起来非常方便。 不同的模型能够接收的输入类型、输出类型不一定相同。SpringAI根据模型的输入…

在TIA 博途中下载程序时找不到对应的网卡怎么办?

1. 检查物理连接 确认网线已正确连接PLC和PC&#xff0c;接口指示灯正常。 尝试更换网线或交换机端口&#xff0c;排除硬件故障。 2. 确认网卡驱动已安装 设备管理器检查&#xff1a; 右键点击“此电脑” → “管理” → “设备管理器”。 展开“网络适配器”&#xff0c;确…

Zabbix实践!客户端自动发现

在线答疑&#xff1a;乐维社区 一、客户端状态检查 1.检查客户端的zabbix-agent2是否正常 [rootnode1 ~]# systemctl is-active zabbix-agent2.service active 2.从服务端检查是否可以获得客户端信息 [rootIT-01 ~]# zabbix_get -s ‘192.168.200.135’ -p 10050 -k ‘agent.p…

动态规划中的 求“最长”、“最大收益”、“最多区间”、“最优策略” 双重 for + 状态转移

以最长递增子序列为例 &#x1f3af; 首先明确目标 以最长上升子序列&#xff08;LIS&#xff09;为例&#xff0c;假设输入是&#xff1a; nums : []int{10, 9, 2, 5, 3, 7, 101, 18}我们定义&#xff1a; dp[i]&#xff1a;以 nums[i] 为结尾的最长上升子序列长度目标&…

SEO关键词与长尾词高效布局

内容概要 在SEO优化实践中&#xff0c;关键词布局的科学性与系统性直接影响流量的获取效率与可持续性。本文以核心关键词筛选为起点&#xff0c;结合长尾词挖掘工具与语义关联分析技术&#xff0c;逐步构建覆盖用户全搜索场景的内容矩阵。通过金字塔结构模型&#xff0c;实现高…

考研数一公式笔记

考研数学&#xff08;一&#xff09;核心结论与易错点详细笔记 第一部分&#xff1a;高等数学 一、函数、极限、连续 (一) 重要结论与公式 等价无穷小替换 (仅限乘除运算&#xff0c;极限过程为 x → 0 或某特定值导致因子→0)&#xff1a; sin x ~ x tan x ~ x arcsin x …

Debezium TableSchemaBuilder详解

Debezium TableSchemaBuilder详解 1. 类的作用与功能 1.1 核心作用 TableSchemaBuilder是Debezium中负责构建表Schema的核心类,主要功能包括: Schema构建:将数据库表结构转换为Kafka Connect的Schema定义主键处理:生成表的主键Schema值Schema处理:生成表的非主键字段Sc…

49 python Matplotlib之Pandas 数据可视化

Pandas 是 Python 中用于数据处理的核心库,其内置了基于 Matplotlib 的可视化功能,可通过 DataFrame.plot() 和 Series.plot() 方法快速生成常见图表,无需手动编写绘图代码,大幅提升效率。 一、Pandas 核心绘图方法 基础语法如下:该代码为伪代码,仅做语法说明,无法执行…

《微服务架构设计模式》笔记

思维导图 1-3章 4-6 章 5-13 章 资料 配套代码仓库&#xff1a;https://github.com/microservices-patterns/ftgo-application 作者网站&#xff1a;https://microservices.io/

手写一个简单的线程池

手写一个简单的线程池 项目仓库&#xff1a;https://gitee.com/bossDuy/hand-tearing-thread-pool 基于一个b站up的课程&#xff1a;https://www.bilibili.com/video/BV1cJf2YXEw3/?spm_id_from333.788.videopod.sections&vd_source4cda4baec795c32b16ddd661bb9ce865 理…

手机打电话时由对方DTMF响应切换多级IVR语音菜单(完结)

手机打电话时由对方DTMF响应切换多级IVR语音菜单&#xff08;完结&#xff09; --本地AI电话机器人 上一篇&#xff1a;手机打电话时由对方DTMF响应切换多级IVR语音菜单&#xff08;话术脚本与实战&#xff09; 下一篇&#xff1a;编写中 一、前言 经过前面几个篇章的详细阐…