docker网络【重点】

一、网络知识

1、桥接模式:用于链接两个不同网络段的设备,是共享通信的一种方式

2、桥接设备:工作在OSI模型的第二层(数据链路层)。根据MAC地址转发数据帧,类似于交换机,只能转发同一网段,通过泛洪广播找到目标地址的MAC地址,学习,然后保存在MAC地址表中

二、docker网络

1、实现方式

docker网络是基于桥接模式实现的

2、工作模式

(1)建立虚拟网络桥:安装开启docker后,docker进程就会自动创建一个虚拟网络桥(docker0)

作用:是一个虚拟的网络设备,类似于物理网络设备的交换机

2分配唯一的IP地址:每次运行一个容器,docker进程都会分配唯一的且未被其他容器占用的IP地址给容器,这个IP地址在桥接模式网络的子网中

3容器和主机通信:通过桥接模式,容器可以与主机直接通信,容器可以访问主机上的运行服务,主机也可以通过桥接网络docker0来访问容器内部的进程(实际上这个过程是在主机上做了iptables的nat地址转换)

问题:docker的网桥是宿主机虚拟出来的,并不是一个真正存在的网络设备,外部网络无法寻址找到(外部网络无法直接访问docker0分配给容器的IP地址)

解决:可以给容器做端口映射

①随机分配端口和宿主机映射-P

docker run -itd --name test1 -P nginx:1.22.0 /bin/bash

-P:在创建容器时,在宿主机和容器之间做一个端口映射,-P随机分配一个端口给宿主机,容器的端口是不变的。随机分配的端口号从32768开始。进入容器开启一下服务。实际上,docker是在宿主机和容器之间做了一个iptables的nat地址转换,用宿主机的32768端口映射80端口

问题:浏览器无法访问映射的端口

原因:没有打开转发功能

解决:打开转发功能

sysctl net.ipv4.ip_forward

echo 1 > /proc/sys/net/ipv4/ip_forward

②指定端口号和宿主机映射-p

-p:指定端口,人为设置固定的端口映射

③指定端口号和宿主机一一映射

4、docker的网络模式【面试题】

创建容器时指定网络模式

--network host

(1)bridge模式(桥接模式):默认模式,在创建docker时不需要指定网络类型

(2)host模式(共用模式):容器不会虚拟出自己的网卡,也没有自己的IP地址,全部使用宿主机的IP地址和端口。如果是单个容器运行,可以使用host模式(宿主机和容器共用一个IP地址和端口)

(3)container模式:容器和容器之间共用一个IP和端口(两个端口不能同时起来)

(4)none模式:docker容器有自己的network-space,但是容器没有任何网络设置,这个容器没有网卡,没有IP地址,没有路由,只有lo回环网络,在none模式下容器不可以联网(一般用于容器功能测试)

(5)自定义网络:给docker创建一个自己定义的网段(基于bridge模式创建自定义网络)

NETWORK ID

docker网络唯一的网络ID

NAME

docker网络的名称

DRIVER

docker网络的驱动程序

SCOPE

docker网络的作用范围

创建容器时无法指定IP地址

在使用默认docker:0的网桥时,创建容器时不能指定IP地址的,只能由docker网桥自动分配,除非用户自定义的网络才能给容器分配IP地址

创建自定义IP地址

①创建网段

docker network create --subnet=172.18.0.0/16 --opt "com.docker.network.bridge.name"="docker1" mynetwork

--opt "com.docker.network.bridge.name"="docker1"可以不加,但是网卡名称难以识别

mynetwork自定义网段的名称

②指定IP地址

4、查看容器日志

docker logs 容器名称/ID(不是实时查看,查看所有)

docker logs -f (从尾部看)

docker logs --tail=10 test1(固定看10行)

docker logs --tail=10 -f test1(动态看最近的10行)

三、数据卷

容器如何与宿主机之间进行数据共享?

1、定义

数据卷是一个供容器使用的特殊的目录,在容器中,和宿主机的目录进行映射,主机和宿主机之间都可以对目录中的文件进行修改,双方同步生效,对镜像也没有影响,可以实现宿主机到容器之间的数据迁移

2、数据共享(映射关系)

(1)宿主机和容器之间实现数据共享

①创建容器的挂载卷(自动创建目录)

/opt/yyy在宿主机中;/opt/sss在容器中

结论:创建挂在卷,宿主机和容器中的数据可互相同步更新

②创建容器中的目录为只读模式

ro:read only

结论:创建容器时设置为只读模式后,容器内部只能读,不能写,能同步到来自宿主机的数据文件

(2)容器和容器之间实现数据共享(数据卷容器)

数据卷容器:只提供挂载点,让另一方收集数据

test1、test2可以有一个或多个映射目录,实现数据互传,数据同步

在test1容器中的挂载目录下分别创建

挂载目录

文件

内容

sss

sss.txt

sss1

yyy

yyy.txt

yyy1

结论:容器之间实现数据共享

3、容器互联:两个容器之间实现网络通信

新版本方法:基于自定义网络实现网段互联

创建网段172.20.0.0/16

结论:在同一网段中,互相可以ping通

4、部署mysql镜像,创建一个mysql容器,用navicat可以直接访问容器的mysql 33066:3306;创建一个数据卷,宿主机可以看到容器内的mysql的日志文件

拉取mysql5.7

创建容器mysql

进入容器并登录mysql,给root用户赋权

查看mysql日志状态

编辑配置文件开启binlog,设置log文件

导出mysql 的配置文件

编辑mysqld.cnf文件

导入mysql 的配置文件

chmod 777 /var/log/mysql

查看mysql 日志

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

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

相关文章

状态设计模式

package com.jmj.pattern.state.after;public abstract class LiftState {protected Context context;public void setContext(Context context) {this.context context;}//电梯开启操作public abstract void open();//电梯关闭操作public abstract void close();//电梯运行操…

双目光波导AR眼镜_AR智能眼镜主板PCB定制开发

AR眼镜方案的未来发展潜力非常巨大。随着技术的进步,AR眼镜的光学模块将变得更小巧,像素密度也会增加,实现更高分辨率的画面,甚至能够达到1080P、2K和4K级别的清晰度,从而提升用户的视觉体验。 AR智能眼镜的硬件方面&a…

河南诗词大会规则和流程

河南省诗词大赛是一场充满诗意的盛会,分为小学组、中学组和社会组。流程包括四个环节:“大浪淘沙” 、“月宫折桂” 、“飞花令”和“诗画南阳”。 比赛前两轮为“大浪淘沙”和“月宫折桂”环节,所有赛手采用平板现场答题,时间为2…

企业培训私有化解决方案PlayEdu

本文应网友 林枫 的要求而折腾; 什么是 PlayEdu ? PlayEdu 是一款适用于搭建内部培训平台的开源系统,旨在为企业/机构打造自己品牌的内部培训平台。PlayEdu 基于 Java MySQL 开发;采用前后端分离模式;前端采用 React1…

学习记录---kubernetes中备份和恢复etcd

一、简介 ETCD是kubernetes的重要组成部分,它主要用于存储kubernetes的所有元数据,我们在kubernetes中的所有资源(node、pod、deployment、service等),如果该组件出现问题,则可能会导致kubernetes无法使用、资源丢失等情况。因此…

104.进程创建

目录 进程创建相关的函数 获取当前进程的进程ID(PID) 获取当前进程的父进程ID(PPID) 创建一个新的进程 fork()剖析 调用格式 创建子进程 子进程与父进程 父子进程执行流 代码演示 进程创建相关的函数 Linux中进程ID为pi…

『亚马逊云科技产品测评』活动征文|AWS云服务器EC2实例实现ByConity快速部署

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道 前言 亚马逊是全球最大的在线零售商和云计算服务提供商。AWS云服务器在…

vscode 配置 —— snippets、todo tree

一、snippets snippets 主要用于在进行文件及函数进行注释说明时,一键生成自定义格式注释 使用。 1.1 点击 vscode 设置,选择 User Snippets 1.2 编辑 code-snippets 文件 以C 文件注释为例,文件作用注释 fun_cpp_file.code-snippets &am…

新版IDEA中,module模块无法被识别,类全部变成咖啡杯无法被识

新版IDEA中,module模块无法被识别,类全部变成咖啡杯无法被识 如下图: 解决方法:java的Directory文件没有被设置为根目录,解决方法如下: 这是方法之一,还有很多的原因 可能的原因: …

【C语言】函数递归--输出n的k次方

题目描述&#xff1a; 递归实现n的k次方 代码如下&#xff1a; #include<stdio.h> int nk(int n, int k) {if (k > 0)return n * nk(n, k - 1); } int main() {int ret 0;int n 0;int k 0;scanf("%d", &n);scanf("%d", &k);ret nk(n…

【数据库】树形数据组织架构下的封锁并发控制,B树索引并发访问控制,树协议原理及案例分析

数据库并发访问树协议 ​专栏内容&#xff1a; 手写数据库toadb 本专栏主要介绍如何从零开发&#xff0c;开发的步骤&#xff0c;以及开发过程中的涉及的原理&#xff0c;遇到的问题等&#xff0c;让大家能跟上并且可以一起开发&#xff0c;让每个需要的人成为参与者。 本专栏会…

十六、FreeRTOS之FreeRTOS队列集

本节需要掌握以下内容&#xff1a; 1&#xff0c;队列集简介&#xff08;了解&#xff09; 2&#xff0c;队列集相关API函数介绍&#xff08;熟悉&#xff09; 3&#xff0c;队列集操作实验&#xff08;掌握&#xff09; 一、队列集简介&#xff08;了解&#xff09; 一个…

添加新公司代码的配置步骤-Part2

原文地址&#xff1a;配置公司代码 概述 在第一部分中&#xff0c;我讨论并列出了在 SAP 中构建新公司代码时企业结构部分所需的任务。在这篇博客中&#xff0c;我将列出并讨论 FI 模块中需要配置的内容。您还记得本主题涵盖六个部分。 企业结构 - 第 1 部分 FI 配置– 第 2…

【Linux】diff命令使用

diff命令 是一个用于比较两个文件或目录之间差异的命令。它可以显示两个文件之间的行级别差异&#xff0c;并以易于阅读的格式输出结果。 著者 由保罗艾格特、迈克海特尔、大卫海耶斯、理查德史泰尔曼和Len Tower撰写。 diff命令 -Linux手册页 语法 diff [选项] [文件1]…

【java设计模式】——代理设计模式,两种举例说明

代理设计模式 1.介绍 Spring 框架中AOP底层使用动态代理设计模式。通过学习动态代理设计模式可以很好的理解Spring框架AOP底层 代理模式&#xff08;Proxy&#xff09;是GoF23种设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象&#xff0c;而是通过调用代理&am…

基于ssm家庭理财系统源码和论文

基于ssm家庭理财系统源码和论文743 idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 环境&#xff1a; jdk8 tomcat8.5 开发技术 ssm 摘要 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff…

【文件上传系列】No.0 利用 FormData 实现文件上传、监控网路速度和上传进度(原生前端,Koa 后端)

利用 FormData 实现文件上传 基础功能&#xff1a;上传文件 演示如下&#xff1a; 概括流程&#xff1a; 前端&#xff1a;把文件数据获取并 append 到 FormData 对象中后端&#xff1a;通过 ctx.request.files 对象拿到二进制数据&#xff0c;获得 node 暂存的文件路径 前端…

PDF编辑器免费版有哪些?哪个好用?

日常工作和学习中,普通的PDF的阅读器通常无法进行编辑,更别说逆向导出成为Word、PPT或者Excel了。而且。市场上很多PDF编辑器还要收费。那么问题来了,PDF编辑器免费版有哪些呢?这就给大家安利几款,强烈建议收藏! PDF编辑器免费版一:PDF24 这款编辑器的功能有主要有PDF的合并、…

LiDAR 城市模型的 3D Python 工作流

1.引言 LiDAR&#xff08;Light Detection and Ranging&#xff09;是一种通过测量激光束从发射到返回的时间来测量距离&#xff0c;从而生成物体的三维表面模型的技术。这种技术在城市建模中具有广泛的应用&#xff0c;可以用于城市规划、环境监测、交通仿真等领域。而使用Pyt…

Linux查看命令的绝对路径

linux查看命令的绝对路径 在Linux中&#xff0c;可以使用以下命令来查看命令的绝对路径&#xff1a; 1、which 命令名 例如&#xff0c;要查看chronyc命令的绝对路径&#xff0c;可以运行&#xff1a; which chronyc 2、whereis 命令名 例如&#xff0c;要查看chronyc命令…