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 日志

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Inno Setup 打包程序文件 怎么把其中一个文件安装时复制到指定系统文件夹

环境: Inno Setup 6.6 Win10 专业版 问题描述: 使用Inno Setup 打包程序文件 怎么把其中一个文件安装时复制到指定系统文件夹 将文件api-ms-win-shcore-scaling-l1-1-1.dll复制到system32里面 解决方案: 1.由于安全和权限的限制,直接在Inno Setup脚本中复制文件到C:\…

Mysql综合案例练习<1>

MySql综合案例练习<1> 题目一题目二题目三题目四题目五题目六题目七题目八题目九题目十题目十一题目十二题目十三题目十四题目十五题目十六题目十七题目十八题目十九 题目一 创建数据库test01_library 创建表 books&#xff0c;表结构如下&#xff1a; CREATE DATABASE …

Tap虚拟网卡

1 概述 Tap设备通常用于虚拟化场景下&#xff0c;其驱动代码位于drivers/net/tun.c&#xff0c;tap与tun复用大部分代码&#xff0c; 注&#xff1a;drivers/net/tap.c并不是tap设备的代码&#xff0c;而是macvtap和ipvtap&#xff1b; 下文中&#xff0c;我们统一称tap&#…

了解Linux网络配置

本章主要介绍网络配置的方法。 网络基础知识 查看网络信息 图形化界面修改 通过配置文件修改 命令行管理 11.1 网络基础知识 一台主机需要配置必要的网络信息&#xff0c;才可以连接到互联网。需要的配置网络信息包括IP、 子网掩码、网关和 DNS。 11.1.1 IP 地址 在计算机…

0010Java安卓程序设计-ssm基于安卓的掌上校园系统

文章目录 **摘要**目录系统实现5.2管理员功能模块开发环境 编程技术交流、源码分享、模板分享、网课分享 企鹅&#x1f427;裙&#xff1a;776871563 摘要 随着Internet的发展&#xff0c;人们的日常生活已经离不开网络。未来人们的生活与工作将变得越来越数字化&#xff0c;…

【Java系列】函数式接口编程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【redis笔记】redis应用

redis应用 redis 发布订阅 redis客户端可以订阅任意数量的频道 订阅方式 subscribe channel1 – 订阅了channel1频道 发布方式 订阅了之后&#xff0c;可以在任意客户端发布消息到指定channel publish channel1 hello – 往channel发布hello&#xff0c;会返回订阅channe…

class036 二叉树高频题目-上-不含树型dp【算法】

class036 二叉树高频题目-上-不含树型dp code1 102. 二叉树的层序遍历 // 二叉树的层序遍历 // 测试链接 : https://leetcode.cn/problems/binary-tree-level-order-traversal/ code1 普通bfs code2 一次操作一层 package class036;import java.util.ArrayList; import java…

9. 使用Pthreads实现线程池(一)

背景 多线程的一个典型应用场景就是服务器的并发处理,如下图所示,多名用户向服务器发出数据操作的请求。为了提高并发性,我们可以在每收到一个用户请求时就创建一个线程处理相关操作。这种操作在请求数量较少时没有什么问题,但在请求数量很多时你会发现线程的创建和销毁所占…

绑定域名简单教程

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️宝剑锋从磨砺出&#xff0c;梅花香自苦寒来 &#x1f324;️安装Nginx环境 &…

第七次作业

1&#xff0c; 给定一个包含n1个整数的数组nums&#xff0c;其数字在1到n之间&#xff08;包含1和n)&#xff0c;可知至少存在一个重复的整数&#xff0c;假设只有一个重复的整数&#xff0c;请找出这个重复的数 arr input("") num [int(n) for n in arr.split()]…

mysql 5.7 Unknown column ‘password‘ in ‘field list‘

问题现象&#xff1a; 执行sql : select user&#xff0c;host,password from user&#xff1b;时提示 ERROR 1054(42S22):Unknown column password in field list 现象如下图所示&#xff1a; mysql 5.7开始 密码字段用&#xff1a;authentication_string

http接口自动化测试框架实现

一、测试需求描述 对服务后台一系列的http接口功能测试。 输入&#xff1a;根据接口描述构造不同的参数输入值 输出&#xff1a;XML文件 eg:http://xxx.com/xxx_product/test/content_book_list.jsp?listid1 二、实现方法 1、选用Python脚本来驱动测试 2、采用Excel表格…

【hacker送书第10期】AI时代系列丛书(五选一)

AI时代系列丛书 AI时代程序员开发之道✨内容简介参与方式 AI时代项目经理成长之道✨内容简介参与方式 AI时代架构师修炼之道✨内容简介参与方式 AI时代产品经理升级之道✨内容简介参与方式 AI时代Python量化交易实战✨内容简介参与方式 AI时代程序员开发之道✨ 内容简介 本书是…

zabbix配置snmp trap--使用snmptrapd和Bash接收器--图文教程

1.前言 我的zabbix的版本是5.0版本&#xff0c;5.0的官方文档没有使用bash接收器的示例&#xff0c;6.0的官方文档有使用bash接收器的示例&#xff0c;但是&#xff0c;下载文件的链接失效&#xff1f;&#xff01; 这里讲解zabbix-server端配置和zabbix web端配置 2.zabbix-…

好用免费的AI换脸5个工具

在当今社会的发展中&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;扮演着关键的角色&#xff0c;其应用领域不断扩展。作为AI的一个分支&#xff0c;换脸技术近年来备受欢迎。这项技术使得将一个人的面部特征迁移到另一个人的照片或视频成为可能。除…

链式二叉树的创建及遍历(数据结构实训)

题目&#xff1a; 链式二叉树的创建及遍历 描述&#xff1a; 树的遍历有先序遍历、中序遍历和后序遍历。先序遍历的操作定义是先访问根结点&#xff0c;然后访问左子树&#xff0c;最后访问右子树。中序遍历的操作定义是先访问左子树&#xff0c;然后访问根&#xff0c;最后访问…

Ubuntu宝塔面板本地部署轻论坛系统HadSky并远程访问

文章目录 前言1. 网站搭建1.1 网页下载和安装1.2 网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3 Cpolar稳定隧道&#xff08;本地设置&#xff09;2.4 公网访问测试 总结 前言 经过多年的基础…

【python、opencv】opencv仿射变换原理及代码实现

opencv仿射变换原理 仿射变换是opencv的基本知识点&#xff0c;主要目的是将原始图片经过仿射变换矩阵&#xff0c;平移、缩放、旋转成目标图像。用数学公式表示就是坐标转换。 其中x&#xff0c;y是原始图像坐标&#xff0c;u&#xff0c;v是变换后的图像坐标。将公式转换为…