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

Docker 容器网络技术

Docker 容器网络技术

一、概述

Docker 容器技术在微服务架构和云原生应用中扮演着重要角色。容器的轻量化和快速启动特性,使得它们成为现代应用部署的首选。然而,容器的网络连接和管理是一个复杂的问题,尤其是当涉及到容器间通信时。Docker 提供了多种网络模式来解决这些问题。

1. 容器间通信的挑战

Docker 容器每次重启后,其 IP 地址可能会发生变化。这导致依赖 IP 地址进行通信的容器间通信变得不稳定。为了解决这个问题,Docker 网络提供了容器间互联和通信的解决方案。

2. Docker 网络的作用

Docker 网络的主要作用包括:

  • 容器间的互联和通信
  • 端口映射
  • 容器 IP 变动时,通过服务名进行通信,确保通信不受影响

二、Docker 的四种网络模式

Docker 提供了四种网络模式,每种模式都有其特定的用途和配置方式。

1. 桥接模式(bridge)

  • 命令指定方式--network bridge
  • 描述:为每个容器分配并设置 IP 地址,并将容器连接到虚拟网桥上。这是 Docker 的默认网络模式。

2. 主机模式(host)

  • 命令指定方式--network host
  • 描述:容器不创建自己的网络接口,而是直接使用宿主机的 IP 地址和端口。

3. 容器模式(container)

  • 命令指定方式--network 容器名称或ID
  • 描述:新创建的容器不创建自己的网络接口,而是与指定的容器共享 IP 和端口。

4. None 模式

  • 命令指定方式--network none
  • 描述:容器有独立的 Network Namespace,但不进行任何网络设置。

三、常用 Docker 网络命令

掌握 Docker 网络命令是管理和配置 Docker 网络的关键。

1. 查看网络

docker network ls

2. 创建网络

docker network create --driver bridge --gateway 192.168.137.1 --subnet 192.168.137.0/16 mynet

3. 查看网络详情

docker network inspect 网络名称

4. 连接容器到网络

docker network connect 网络名称 容器名称

5. 断开容器的网络连接

docker network disconnect 网络名称 容器名称

6. 删除未使用的网络

docker network prune

7. 删除指定网络

docker network rm 网络名称

四、使用示例

1. 创建容器时挂载网络

docker network create --driver bridge --gateway 192.168.137.1 --subnet 192.168.137.0/16 myNet1
docker run --name containerName -p 80:80 -d --network myNet1 myNginx
docker network disconnect myNet1 myNginx

2. 容器已存在时连接到新网络

docker network create --driver bridge --gateway 192.168.137.1 --subnet 192.168.137.0/16 myNet2
docker network connect myNet2 myNginx
docker network disconnect myNet2 myNginx

3. 使用 docker-compose 挂载网络

version: '3'
services:nginx:image: nginx:alpinecontainer_name: nginx-devenvironment:- TZ=Asia/Shanghaiports:- "80:80"volumes:- /usr/local/docker/workspace/nginx/html:/usr/share/nginx/html- /usr/local/docker/workspace/nginx/conf/nginx.conf:/etc/nginx/conf.d/default.confnetworks:- mynetnetworks:mynet:driver: bridgeipam:config:- subnet: "192.168.0.101/16"gateway: 192.168.0.100

五、关联知识点补充

1. Docker 网络的高级配置

  • 自定义 DNS:可以在创建网络时指定 DNS 服务器,以支持容器内的域名解析。
  • 网络策略:使用第三方网络插件,如 Calico 或 Weave,可以实现更复杂的网络策略和安全控制。

2. Docker 网络的性能优化

  • 使用 Macvlan 网络:Macvlan 网络模式可以提供更好的性能,因为它允许容器直接在宿主机的网络接口上操作。
  • 网络插件:使用网络插件可以提供额外的功能,如负载均衡、服务发现等。

3. Docker 网络的安全性

  • 隔离网络:创建隔离的网络环境,以确保容器间的通信安全。
  • 网络安全组:使用网络安全组来限制容器间的流量,提高安全性。

六、总结

Docker 网络是容器化技术中的重要组成部分,它提供了容器间通信的多种解决方案。通过合理配置和管理 Docker 网络,可以确保容器化应用的稳定性和安全性。

相关文章:

Docker 容器网络技术

Docker 容器网络技术 一、概述 Docker 容器技术在微服务架构和云原生应用中扮演着重要角色。容器的轻量化和快速启动特性,使得它们成为现代应用部署的首选。然而,容器的网络连接和管理是一个复杂的问题,尤其是当涉及到容器间通信时。Docker…...

C++ 起始帧数、结束帧数、剪辑视频

C 指定起始帧数、结束帧数、 剪辑视频 C 无法直接用H264&#xff0c;只能用avi编码格式 #include <iostream> #include <opencv2/opencv.hpp>int main() {// 读取视频&#xff1a;创建了一个VideoCapture对象&#xff0c;参数为摄像头编号std::string path &quo…...

【项目一】基于pytest的自动化测试框架———解读requests模块

解读python的requests模块 什么是requests模块基础用法GET与POST的区别数据传递格式会话管理与持久性连接处理相应结果应对HTTPS证书验证错误处理与异常捕获 这篇blog主要聚焦如何使用 Python 中的 requests 模块来实现接口自动化测试。下面我介绍一下 requests 的常用方法、数…...

升级Ubuntu内核的几种方法

注意&#xff1a; Ubuntu主线内核由 Ubuntu 内核团队提供&#xff0c;用于测试和调试目的。 它们不受支持且不适合生产使用。 仅当它们可以解决当前内核遇到的关键问题时&#xff0c;才应该安装它们。 1、手动下载deb文件升级内核 来源&#xff1a;kernel.ubuntu.com/main…...

Android绘制靶面,初步点击位置区域划分取值测试

自定义View&#xff1a; public class TargetView extends View {private Paint paint;private int[] radii {100, 250, 400, 550, 700}; // 五个圆的半径private int numberOfSegments 8;private int[][] regionValues; // 存储每个区域的值public TargetView(Context cont…...

【SpringBoot】调度和执行定时任务--Quartz(超详细)

Quartz 是一个功能强大的任务调度框架&#xff0c;广泛用于在 Java 应用程序中定时执行任务&#xff0c;同时它支持 Cron 表达式、持久化任务、集群等特性。以下是 Quartz 的详细使用教程&#xff0c;包括安装、基本概念、简单示例和高级功能。 1. 安装 Quartz 首先&#xff…...

低代码开发平台系统架构概述

概述 织信低代码开发平台&#xff08;产品全称&#xff1a;织信Informat&#xff09;是一款集成了应用设计、运行与管理的综合性平台。它提供了丰富的功能模块&#xff0c;帮助用户快速构建、部署和维护应用程序。织信低代码平台通过集成丰富的功能模块&#xff0c;为用户提供…...

源码编译llama.cpp 、ggml 后端启用自定义BLAS加速

源码编译llama.cpp 、ggml 后端启用自定义BLAS加速 我在llama.cpp 官网上提交了我的解决方案&#xff1a;How to setup OpenBlas on windows? #625 GGML 官网 https://github.com/ggerganov/ggml/issues/959 windows on arm 编译 llama.cpp 、ggml 后端启用自定义BLAS加速 …...

glb数据格式

glb数据格式 glb 文件格式只包含一个glb 文件&#xff0c;文件按照二进制存储&#xff0c;占空间小 浏览 浏览glb工具的很多&#xff0c;ccs&#xff0c;3D查看器等都可以&#xff0c;不安装软件的话用下面网页加载就可以&#xff0c;免费 glTF Viewer (donmccurdy.com) glb…...

手语识别系统源码分享

手语识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vision …...

Oracle 数据库部署与实施

文章目录 1. macOS 上部署 Oracle 数据库通过 Docker 在 macOS 上部署 2. Linux 上部署 Oracle 数据库直接在 Linux 上部署通过 Docker 在 Linux 上部署 3. Windows 上部署 Oracle 数据库4. 使用 Docker 部署 Oracle 数据库前提条件拉取 Oracle 数据库 Docker 镜像运行 Oracle …...

【Python】 ast.literal_eval 与 eval

一、背景 我在在编写管理后台的过程中&#xff0c;遇到一个小问题&#xff0c;是关于用户名的存储和解码。用户名以base64编码的形式存储在 MySQL 数据库中&#xff0c;并且还保留了b这样的形式&#xff0c;具体为什么要这样存我也不知道,可能是因为有些特殊字符无法直接存储。…...

Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 新一代垃圾回收器 ZGC 收集器

文章目录 垃圾回收机制垃圾收集器垃圾收集器分类ZGC 收集器ZGC 的性能优势复制算法指针染色读屏障 ZGC 的工作过程Stop-The-World 暂停阶段并发阶段 垃圾回收机制 垃圾回收&#xff08;Garbage Collection&#xff0c;GC&#xff09;&#xff0c;顾名思义就是释放垃圾占用的空…...

基于 K8S kubernetes 的常见日志收集方案

目录 1、日志对我们来说到底重不重要&#xff1f; 2、常见的日志收集方案 2.1 EFK 2.2 ELK Stack 2.3 ELKfilebeat 2.4 其他方案 2、elasticsearch组件介绍 3、filebeat组件介绍 3.1 filebeat和beat关系 3.2 filebeat是什么&#xff1f; 3.3 Filebeat工作原理 3.4 …...

Unity3D 小案例 像素贪吃蛇 02 蛇的觅食

Unity3D 小案例 像素贪吃蛇 第二期 蛇的觅食 像素贪吃蛇 食物生成 在场景中创建一个 2D 正方形&#xff0c;调整颜色&#xff0c;添加 Tag 并修改为 Food。 然后拖拽到 Assets 文件夹中变成预制体。 创建食物管理器 FoodManager.cs&#xff0c;添加单例&#xff0c;可以设置…...

【sgCreateCallAPIFunction】自定义小工具:敏捷开发→调用接口方法代码生成工具

<template><div :class"$options.name" class"sgDevTool"><sgHead /><div class"sg-container"><div class"sg-start"><div style"margin-bottom: 10px">调用接口方法定义列表</div…...

京东商品详情的 API 探秘与应用

在当今数字化的商业世界中&#xff0c;获取准确而详细的商品信息对于开发者、商家以及消费者都具有至关重要的意义。京东作为国内领先的电商平台之一&#xff0c;提供了丰富的商品资源和强大的 API 接口&#xff0c;让我们能够轻松获取京东商品的详情信息。本文将带你深入了解如…...

功能测试干了三年,快要废了。。。

8年前刚进入到IT行业&#xff0c;到现在学习软件测试的人越来越多&#xff0c;所以在这我想结合自己的一些看法给大家提一些建议。 最近聊到软件测试的行业内卷&#xff0c;越来越多的转行和大学生进入测试行业&#xff0c;导致软件测试已经饱和了&#xff0c;想要获得更好的待…...

【C++】多态的认识和理解

个人主页 文章目录 ⭐一、多态的概念&#x1f384;二、多态的定义及实现1.多态的构成2.实现多态的条件3.虚函数的概念4.虚函数的重写和覆盖5.析构函数的重写6.协变7.override和 final关键字8.重载、重写/覆盖、隐藏这三者的区别 &#x1f3e0;三、纯虚函数和抽象类的关系&#…...

linux-安全管理-用户认证

Linux 安全管理&#xff1a;用户认证 一、概述 用户认证是 Linux 安全管理的核心部分&#xff0c;确保系统能够识别并验证合法用户&#xff0c;同时阻止未经授权的访问。Linux 提供了多种用户认证机制&#xff0c;包括用户名和密码认证、基于密钥的认证、双因素认证&#xff…...

Java低代码组件如何通过等保2.0三级认证?某省级政务平台12类组件合规改造清单(含国密SM4集成细节)

第一章&#xff1a;Java低代码组件等保2.0三级合规性概览等保2.0三级要求面向处理重要数据或影响关键业务连续性的信息系统&#xff0c;对Java低代码平台及其组件提出了覆盖技术与管理双维度的强制性安全约束。在技术层面&#xff0c;核心聚焦于身份鉴别、访问控制、安全审计、…...

Java中的5大AI框架!

前言在AI技术爆发的这两年里&#xff0c;我一直在思考一个问题&#xff1a;Python有LangChain&#xff0c;JavaScript有LangChain.js&#xff0c;我们Java开发者拿什么来构建AI应用&#xff1f;这个问题在2024-2025年终于有了答案。随着Spring AI的1.0 GA发布、LangChain4j的持…...

springboot+vue基于web的学生宿舍预订分配管理系统的设计与实现

目录同行可拿货,招校园代理 ,本人源头供货商系统功能模块划分技术实现要点扩展性考虑项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作同行可拿货,招校园代理 ,本人源头供货商 系统功能模块划分 后端&#xff08;SpringBoot&am…...

Echo:预测智能的一小步,通往通用智能的一大步

来源&#xff1a;机器之心大模型能否预测未来&#xff1f;UniPat AI 构建了一套完整的预测智能基础设施&#xff0c;Echo&#xff0c;包含动态评测引擎、面向未来事件的训练范式和预测专用模型 EchoZ-1.0。在其公开的 General AI Prediction Leaderboard 上&#xff0c;EchoZ-1…...

避开Verilog数据转换的坑:ASCII码转16进制时,大小写处理你真的做对了吗?

Verilog字符转换实战&#xff1a;如何正确处理ASCII与十六进制的大小写问题 在数字系统设计中&#xff0c;数据格式转换是最基础却又最容易出错的环节之一。最近在review团队一位新成员的UART通信模块代码时&#xff0c;发现一个典型的"大小写陷阱"——当十六进制数据…...

Landsat8温度反演结果不准?可能是这5个参数没搞对(ENVI实战经验分享)

Landsat8温度反演精度提升&#xff1a;5个关键参数优化与ENVI实战解析 当你在深夜盯着屏幕上那些明显偏离预期的温度反演结果时&#xff0c;是否曾怀疑过ENVI软件出了问题&#xff1f;事实上&#xff0c;90%的温度反演误差都源于几个关键参数的设置不当。作为一位经历过数十个遥…...

别再单独部署Mosquitto了!用Docker一步搞定带MQTT插件的RabbitMQ 3.13

告别繁琐部署&#xff1a;用Docker Compose快速搭建支持MQTT的RabbitMQ集群 在物联网和微服务混合架构中&#xff0c;消息中间件选型常常让开发者陷入两难——选择轻量级的Mosquitto MQTT broker虽然能满足设备通信需求&#xff0c;却无法处理服务间的AMQP消息&#xff1b;部署…...

终极小说下载器:一键保存全网小说,打造你的私人数字图书馆

终极小说下载器&#xff1a;一键保存全网小说&#xff0c;打造你的私人数字图书馆 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否遇到过这样的情况&#xff1a;追更的小说突然…...

如何让Windows 11告别臃肿?Win11Debloat完整指南帮你一键优化系统

如何让Windows 11告别臃肿&#xff1f;Win11Debloat完整指南帮你一键优化系统 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declu…...

从零上手平头哥剑池CDK:手把手教你搭建第一个RISC-V调试工程(附断点设置技巧)

从零上手平头哥剑池CDK&#xff1a;手把手教你搭建第一个RISC-V调试工程&#xff08;附断点设置技巧&#xff09; 第一次接触RISC-V架构和平头哥的开发环境&#xff0c;难免会有些无从下手。作为一个过来人&#xff0c;我清楚地记得当初为了跑通第一个调试工程&#xff0c;花了…...