Docker 入门篇(十 一)-- 网络配置总结
Docker 容器技术的核心优势之一是其轻量级的虚拟化和隔离性,而 Docker 网络则是实现容器间以及容器与外界通信的关键。以下是对 Docker 网络的关键知识点的总结。
一、 Docker 网络概述
Docker 网络允许容器进行相互通信以及与外部网络的连接。Docker 提供了多种网络类型和驱动程序来满足不同的网络需求:
- Bridge: 默认网络类型,Docker 安装时创建的 docker0 网桥,适用于单个宿主机上的容器互联。
- Host: 容器与宿主机共享网络栈,适用于需要容器与宿主机共享网络资源的场景。
- Overlay: 跨多个 Docker 守护进程的分布式网络,适用于容器跨宿主机通信。
- Macvlan: 为容器分配独立的 MAC 地址,使其可以直接连接到物理网络。
二、 Docker 网络配置
Docker 网络配置包括创建网络、连接容器到网络、配置 IP 地址等:
- 使用 docker network create 创建新网络。
- 使用 docker network connect 将容器连接到现有网络。
- 使用 docker network inspect 查看网络详细信息。
- 配置容器 IP 地址,可以是静态或动态分配。
1. 创建自定义网络
docker network create --driver bridge my-custom-network
这条命令会创建一个名为 my-custom-network 的自定义 bridge 网络。你可以通过 --driver 选项指定网络类型,例如 --driver overlay 来创建一个 overlay 网络。
2. 将容器连接到网络
docker run --network=my-custom-network -d my-image
或者,如果你已经有一个正在运行的容器,可以使用 docker network connect 命令将其连接到网络:
docker network connect my-custom-network container_id_or_name
3. 配置端口映射
如果你希望容器内的服务能够被宿主机或其他容器访问,可以通过 -p 或 --publish 标志配置端口映射:
docker run -p 8080:80 -d my-image
这条命令会将容器内的 80 端口映射到宿主机的 8080 端口上。
三、 容器与外部网络的通信
1. 端口映射: 使用 -p 参数将容器端口映射到宿主机端口,实现外部访问。
案例:运行容器,并将容器的 80 端口映射到宿主机的 8080 端口:
docker run -d -p 8080:80 --name my-web-app-container my-web-app
2. NAT 规则: Docker 使用 iptables 规则进行网络地址转换,允许容器访问外部网络。
案例:如果宿主机有防火墙,需要添加规则以允许外部流量通过映射的端口:
iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
3.使用宿主机的网络
1. host 模式简介
在 host 网络模式下,容器不会获得独立的网络命名空间,而是直接使用宿主机的网络接口。这意味着容器内的进程可以直接看到宿主机的所有网络接口,包括 IP 地址和端口。因此,容器可以直接访问宿主机上的网络资源,无需进行端口映射或额外的网络配置。
2. 配置 host 模式
要在 Docker 中配置 host 模式,只需在运行容器时指定 --network=“host” 选项即可。以下是具体的操作步骤:
运行容器:
使用 docker run 命令运行容器,并通过 --network="host" 参数指定网络模式为 host。例如:
docker run --network="host" -itd --name mycontainer myimage
其中,-itd 是组合参数,表示以交互模式运行容器,并分配一个伪终端,同时在后台运行容器。–name 用于指定容器的名称,myimage 是要运行的容器镜像名称。
3. 验证配置:
容器运行后,可以通过 docker exec 命令进入容器内部,使用如 ip addr 或 ifconfig(取决于容器内的系统)等命令查看网络接口,验证容器是否成功使用了宿主机的网络。
参考文献:
https://blog.51cto.com/u_14129797/5201566
相关文章:
Docker 入门篇(十 一)-- 网络配置总结
Docker 容器技术的核心优势之一是其轻量级的虚拟化和隔离性,而 Docker 网络则是实现容器间以及容器与外界通信的关键。以下是对 Docker 网络的关键知识点的总结。 一、 Docker 网络概述 Docker 网络允许容器进行相互通信以及与外部网络的连接。Docker 提供了多种网…...
【Android面试八股文】Android 有哪些存储数据的方式?
在Android平台上,有多种方式可以存储数据,每种方式都适合不同类型的数据和使用场景。以下是主要的存储数据方式: SharedPreferences(轻量级数据存储): SharedPreferences是用于存储简单键值对数据的最简单方法,适合存储用户偏好设置、配置信息等。数据以XML文件形式存储…...
3. train_encoder_decoder.py
train_encoder_decoder.py #__future__ 模块提供了一种方式,允许开发者在当前版本的 Python 中使用即将在将来版本中成为标准的功能和语法特性。此处为了确保代码同时兼容Python 2和Python 3版本中的print函数 from __future__ import print_function # 导入标准库…...
Hyper-V克隆虚拟机教程分享!
方法1. 使用导出导入功能克隆Hyper-V虚拟机 导出和导入是Hyper-V服务器备份和克隆的一种比较有效的方法。使用此功能,您可以创建Hyper-V虚拟机模板,其中包括软件、VM CPU、RAM和其他设备的配置,这有助于在Hyper-V中快速部署多个虚拟机。 在…...
QDockWidget类详解
一.QDockWidget类概述 1.QDockWidget类 QDockWidget类提供了一个特殊的窗口部件,它可以是被锁在QMainWindow窗口内部或者是作为顶级窗口悬浮在桌面上。 QDockWidget类提供了dock widget的概念,dock widget也就是我们熟悉的工具面板或者是工具窗口。Do…...
vue3.0(十六)axios详解以及完整封装方法
文章目录 axios简介1. promise2. axios特性3. 安装4. 请求方法5. 请求方法别名6. 浏览器支持情况7. 并发请求 Axios的config的配置信息1.浏览器控制台相关的请求信息:2.配置方法3.默认配置4.配置的优先级5.axios请求响应结果 Axios的拦截器1.请求拦截2.响应拦截3.移…...
Python用于处理 DNS 查询库之Dnspython 使用详解
概要 Dnspython 是一个开源的 Python 库,专门用于处理 DNS 查询。它被设计为既简单易用又功能强大,可以满足从简单到复杂的各种 DNS 相关需求。无论是进行基础的 DNS 查询还是进行高级的 DNS 服务器管理,dnspython 都能提供相应的功能。 这个库支持包括 A、AAAA、MX、TXT …...
Django ORM 中过滤 JSON 数据
简介 首先,我们假设您有一个名为 MyModel 的 Django 模型,它包含一个 JSONField 类型的字段,名为 data。这个 data 字段可以存储各种 JSON 格式的数据。 过滤 JSON 字段中的键值对 您可以使用双下划线 __ 语法来访问 JSON 字段中的嵌套键值对。例如: # 过滤 data 字段中 &qu…...
深入探索C语言中的结构体:定义、特性与应用
🔥 个人主页:大耳朵土土垚 目录 结构体的介绍结构体定义结构成员的类型结构体变量的定义和初始化结构体成员的访问结构体传参 结构体的介绍 在C语言中,结构体是一种用户自定义的数据类型,它允许开发者将不同类型的变量组合在一起…...
EDEM-FLUENT耦合报错几大原因总结(持续更新)
写在前面,本篇内容主要是来源于自己做仿真时的个人总结,以及付费请教专业老师。每个人由于工况不一样,所以报错原因千奇百怪,不能一概而论,本篇内容主要是为本专栏读者在报错时提供大致的纠错方向,从而达到少走弯路的效果,debug的过程需要大家一点点试算。问题解答在文 …...
ctfshow sql注入 web234--web241
web234 $sql "update ctfshow_user set pass {$password} where username {$username};";这里被过滤了,所以我们用\转义使得变为普通字符 $sql "update ctfshow_user set pass \ where username {$username};";那么这里的话 pass\ where…...
Python的招聘数据分析与可视化管理系统-计算机毕业设计源码55218
摘要 随着互联网的迅速发展,招聘数据在规模和复杂性上呈现爆炸式增长,对数据的深入分析和有效可视化成为招聘决策和招聘管理的重要手段。本论文旨在构建一个基于Python的招聘数据分析与可视化管理系统。 该平台以主流招聘平台为数据源,利用Py…...
使用ChatGPT写学术论文的技巧和最佳实践指南
大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步&a…...
多模态图像引导手术导航进展
**摘要:**对多模态图像分割建模、手术方案决策、手术空间位姿标定与跟踪、多模态图像配准、图像融合与显示等多模态图像引导手术导航的关键技术进行总结和分析,提出其进一步发展面临的挑战并展望其未来发展趋势。 **外科手术的发展历程:**从最…...
小程序 全局数据共享 getApp()
在小程序中,可以通过 getApp() 方法获取到小程序全局唯一的App实例 因此在App() 方法中添加全局共享的数据、方法,从而实现页面、组件的数据传值 在 app.js 文件中定义 App({// 全局共享的数据globalData:{token:},// 全局共享的方法setToken(token){//…...
第一次面试的经历(java开发实习生)
面试官的问题 我想问一下你这边有做过什么项目吗?你方便讲一下你做过的那些项目吗,用了什么技术栈,包括你负责开发的内容是什么?(项目经验)八大基本数据类型是什么?(基础)你说一下…...
GitHub Copilot API
1. 引言 GitHub Copilot:智能编程的革新者 在软件开发的浩瀚宇宙中,GitHub Copilot犹如一颗璀璨的新星,以其独特的魅力引领着智能编程的新纪元。作为GitHub与OpenAI合作推出的革命性工具,Copilot不仅仅是一个简单的代码补全插件…...
CobaltStrike的内网安全
1.上线机器的Beacon的常用命令 2.信息收集和网站克隆 3.钓鱼邮件 4.CS传递会话到MSF 5.MSF会话传递到CS 1上线机器的Beacon的常用命令 介绍:CobaltStrike分为服务端和客户端,一般我们将服务端放在kali,客户端可以在物理机上面࿰…...
Linux之进程控制(下)
目录 进程替换的概念 进程替换的函数 execl编辑 execlp execle execv execvp execve 上期,我们学习了进程创建,进程终止和进程等待,今天我们要学习的是进程控制中相对重要的板块------进程替换。 进程替换的概念 在进程创建时&…...
Mac搭建anaconda环境并安装深度学习库
1. 下载anaconda安装包 根据自己的操作系统不同,选择不同的安装包Anaconda3-2024.06-1-MacOSX-x86_64.pkg,我用的还是旧的intel所以下载这个,https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/,如果mac用的是M1࿰…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
