docker网络介绍net

news2024/9/25 3:23:27

docker 几种网络模式

  • bridge模式
    使用–net=bridge参数指定网络模式,docker的默认模式就是bridge模式,默认选择bridge的情况下,容器启动的时候会通过DHCP获取一个ip地址,这可能不是我们想要的,在centos系统下,可以通过pipework脚本对容器分配固定ip,(这个ip可以和宿主机同网段)。
    pipework缺陷:容器重启后 IP 设置会自动消失,需要重新设置。
  • host模式
    使用–net=host参数指定网络模式。
    共享宿主机的网络设置
  • none模式
    使用–net=none参数指定网络模式
    创建的容器没有网络设置,只有lo回环网络设置
  • container模式
    使用–name=container:容器名称 or 容器id参数指定网络模式。
    该模式是指创建新容器时,可以通过该参数指定其和一个已存在的网络容器共享一个network namespace。如下图所示,黄色容器的网卡共享左边绿色容器的,因此不会拥有自己独立的ip,而是会共享左边容器的ip和端口范围。两个容器间通过lo进行通信。
    在这里插入图片描述

常用基本命令

  • 查看docker网络

docker network ls

在这里插入图片描述默认创建3种网络,分别为bridge、host、none。

  • 查看完整的网络id

docker network ls --no-trunc

在这里插入图片描述

  • 创建网络,默认为bridge模式

docker network create van

在这里插入图片描述

  • 删除docker网络

docker network rm van

在这里插入图片描述

  • 查看网络详细信息

docker network inspect bridge

在这里插入图片描述

  • 将正在运行的容器连接到指定的网络

docker network connect 网络名 正在运行的容器

  • 容器启动时设置网络

docker run -itd --network=网络名 即将启动的容器

  • 指定容器的ip地址

docker network connect --ip 10.10.10.10 网络名 容器

  • 删除所有无用的网络

docker network prune

  • 强制断开容器的网络连接

docker network disconnect 网络名 容器

实战

我们启动两个centos的镜像,分别为c1、c2

docker run -it --name c1 mycentos:1.5 /bin/bash
docker run -it --name c2 mycentos:1.5 /bin/bash

  • c1的网络设置如下所示
    在这里插入图片描述

  • c2的网络设置如下所示在这里插入图片描述

  • 在c1里面ping c2的网络地址是可以ping通的,如下所示
    在这里插入图片描述

  • 在c2里面ping c1的网络地址是可以ping通的,如下所示在这里插入图片描述

  • 此时我们先关闭c1、在创建容器c3、最后启动c1,观察下c1和c3的网络配置

#关闭c1
docker stop c1
#创建c3的指令
docker run -it --name c3 mycentos:1.5 /bin/bash
#在启动c1
docker start c1

  • 查看c3的网络配置
    在这里插入图片描述

  • 查看c1的网络配置
    在这里插入图片描述

  • 我们可以发现原先c1的ip已经被c3占用了,c1的ip被分配为173.17.0.5。
    这种情况下我们如果通过指定ip的方式去访问对应的中间件的话(如mysql、redis),就有可能会出现当容器重启时,ip发生变更而导致无法正常访问的场景。

如何解决呢,我们可以通过配置自定义网络、通过服务名的方式访问,如下所示

  • 首先我们先关闭并删除对应的容器(c1、c2、c3)
  • 创建自定义docker网络

docker network create van_network

  • 创建容器c1、c2、c3

docker run -it --name c1 --network=van_network mycentos:1.5 /bin/bash
docker run -it --name c2 --network=van_network mycentos:1.5 /bin/bash
docker run -it --name c3 --network=van_network mycentos:1.5 /bin/bash

  • 在c3中分别ping c2 和 c1的容器
    可以发现都可以ping的通。
    在这里插入图片描述
  • 当我们c2容器先关闭在启动,ip发生变更之后。在c3容器中访问c2,观察是否可以正常访问
    可以发现虽然c2的ip从172.21.0.3 变更成172.21.0.5,但是我们通过容器名称仍然可以正常访问成功。
    自定义网络本身就维护好了主机名和IP的对应关系,也就是IP和域名都能联通

在这里插入图片描述

  • 如果我们想给容器分配一个固定的ip,那么我们可以通过pipework给现有容器配IP地址。
# 安装pipework。如果没有安装,可以通过以下命令克隆pipework的GitHub仓库并将其脚本复制到/usr/bin目录下
git clone https://github.com/jpetazzo/pipework.git
cp pipework/pipework /usr/bin/
# 运行pipework为容器指定网络配置。首先,找到你的Docker容器的名字或ID,然后运行pipework
# 以下是一个示例命令,将容器c1配置在192.168.157.2 /24网络上,并设置静态IP192.168.157.160
#pipework 网桥名 容器实例 ID 分配给容器的 IP/掩码@网关
pipework br0 c1 192.168.157.160/24@192.168.157.2 

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

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

相关文章

springboot给类进行赋初值的四种方式

目录 1. 使用Value和ConfigurationProperties2. 使用PropertySource创建Person.java写一个测试类 3. 使用ImportResourceStudent类创建beans.xml在主类中引入测试 心得 1. 使用Value和ConfigurationProperties 这里不加赘述了,前面我也发过,这里就放个链…

redis--分布式锁(1)

分布式锁的基本需求 互斥性:在任何时刻,只有一个客户端能持有锁。无死锁:即使一个客户端在持有锁的期间崩溃,其他客户端也能获得锁。容错性:分布式锁的实现应该能够容忍部分组件的失败,例如,锁服…

Open Interpreter - 开放解释器

文章目录 一、关于演示它是如何工作的?与 ChatGPT 的代码解释器比较 二、快速开始三、更多操作1、互动聊天2、程序化聊天3、开始新的聊天4、保存和恢复聊天5、自定义系统消息6、更改模型7、在本地运行 Open Interpreter终端Python上下文窗口,最大令牌 8、…

JavaScript异步编程的Promise

目录 1.对Promise的了解 (1)介绍 (2)Promise 的优缺点 2.Promise的基本用法 (1)创建Promise对象 (2)Promise方法then() (3)Promise方法catch() &…

力扣SQL50 删除重复的电子邮箱 自连接删除 连表删除

Problem: 196. 删除重复的电子邮箱 👨‍🏫 参考题解 Code DELETE p1 FROM Person p1,Person p2 WHEREp1.Email p2.Email AND p1.Id > p2.Id

前端Web-JavaScript(下)

主要是补全一下JavaScript 基本对象: String对象 语法格式 方式1: var 变量名 new String("…") ; //方式一 例如: var str new String("Hello String"); 方式2: var 变量名 … ; //方式二 例如: var …

CHCSA第二次作业

#01、创建以上目录和文件结构,并将/yasuo目录拷贝4份到/目录下 [rootlocalhost ~]# ls /yasuo // 先检查是否有yasuo目录 ls: 无法访问 /yasuo: 没有那个文件或目录 [rootlocalhost ~]# mkdir -p /yasuo/dir1 // 递归创建目录 [rootlocalhost ~]#…

Pandas的30个高频函数使用介绍

Pandas是Python中用于数据分析的一个强大的库,它提供了许多功能丰富的函数。本文介绍其中高频使用的30个函数。 read_csv(): 从CSV文件中读取数据并创建DataFrame对象。 import pandas as pd df pd.read_csv(data.csv) read_excel(): 从Excel文件中读取数据…

嗖嗖移动业务大厅(JDBC)

一、项目介绍 1、项目背景: 该项目旨在模拟真实的移动业务大厅,。用户可以注册新卡、查询账单、管理套餐、充值话费、打印消费记录等功能。同时,项目还模拟了用户使用场景,如通话、上网、发短信等,并根据套餐规则进行相应的扣费…

AutoCAD ObjectArx二次开发(二) 关于程序入口的介绍

在上一章节中,我们介绍了环境搭建和程序插件的加载,基本的编程模板(框架)已经准备就绪。接下来,我们将开始编写自己的业务逻辑。ARX开发的核心在于将自定义函数注册到库中,并通过指定的调用命令来实现功能。…

【论文解读|Data Intelligence】 Large Knowledge Model: Perspectives and Challenges

论文链接:Large Knowledge Model: Perspectives and Challenges (sciengine.com) 来源: Data Intelligence 论文介绍: 文章简述了人类语言和世界知识的紧密关系,对比了语言模型和知识图谱在表示和处理人类知识方面的优缺点&…

Candance Allegro 入门教程笔记:PCB封装库的组成元素

文章目录 一、PCB封装库的组成元素二、使用Padstack Edictor制作封装焊盘引脚三、PCB Editor软件创建贴片封装(STM32F103T8U6 QFN36 为例)1.引入库2.读入数据 一、PCB封装库的组成元素 一般来说,针对于Allegro软件,完整的封装是由…

blender里的辉光

cycle的辉光, 点开支持后期效果 eevee的辉光,直接点bloom就行。 eevee的透明

GORM更新操作(Save、Update、Updates)

在 Go 语言的 Web 开发中,GORM 是一个广泛使用的 ORM (Object-Relational Mapping) 框架。它提供了一种流畅的方式来处理数据库的交互,其中包括记录的更新操作。GORM中的更新操作主要是update、updates、save这几种 操作前的准备工作:声明模…

C语言进阶版第五课—函数递归

文章目录 1. 什么是函数递归2. 函数递归的思想3. 函数递归的限制4. 函数递归练习4.1 n的阶乘4.2 按照顺序打印一个整数的每一位4.3 自定义函数不允许创建变量,求字符串长度 1. 什么是函数递归 函数递归就是函数自己调用自己 图片中的函数test(&#xff0…

Monaco 使用 TypeDefinitionProvider

Monaco 中的 TypeDefinitionProvider 和 ImplementationProvider、DefinitionProvider 类似,右键点击变量名称,现在 “选择转到类型定义”, 跳到指定位置。 通过 registerTypeDefinitionProvider 添加 TypeDefinitionProvider 处理方法 实现…

力扣SQL50 按日期分组销售产品 group_concact

Problem: 1484. 按日期分组销售产品 👨‍🏫 参考题解 select sell_date, count(distinct product) num_sold,group_concat(distinct product order by productseparator ,) products from activities group by sell_date

度量与增长——OrionX AI算力管理工具的企业价值解读

从科学计算到人工智能,从AI模型开发到AI模型训练,从双精度到半精度,从OPENGL到CUDA,GPU都扮演着关键角色。本文主要从运维的人员的角度出发,来探讨GPU使用过程中遇到的管理问题和创新性解决办法。 GPU的管理和监控 相…

《电容-排容》

节省电路板空间:将多个电容集成在一个封装里,减小了占用的电路板面积。 便于安装和布线:提高生产效率和电路布局的便利性。 一致性较好:由于是同一批次生产,各电容的性能参数较为一致。 【参数】品牌,封…

网络云相册实现--nodejs后端+vue3前端

目录 主页面 功能简介 系统简介 api 数据库表结构 代码目录 运行命令 主要代码 server apis.js encry.js mysql.js upload.js client3 index.js 完整代码 主页面 功能简介 多用户系统,用户可以在系统中注册、登录及管理自己的账号、相册及照片。 每…