Docker-数据卷、网络、dockerfile、挂载

目录

一、数据卷

二、MySQL数据

三、具名和匿名挂载

1、匿名挂载

2、具名挂载

3、指定挂载

四、Dockerfile

1、数据卷容器

2、dockerfile构建步骤

五、数据卷容器

1、实现多个容器之间数据共享

2、多个mysql之间共享数据库

六、Docker网络

1、Docker0

1、查看容器IP

2、evth-pair技术

4、自定义网络

创建网络

使用自己创建的网络,创建容器,同网段之间的连通

跨网段互通


一、数据卷

镜像运行就会产生容器,容器停止,程序停止,程序内的数据消失,所以需要使用数据卷来保存数据,避免容器停止数据消失。

数据卷:目录挂载,即将容器上的目录挂在到宿主机上。用于容器数据持久化和容器之间数据共享

-v 宿主机目录:容器目录

二、MySQL数据

mysql启动前需要配置密码

docker run    -d -p 3306:3306 --name mysql5.7 -it  -e MYSQL_ROOT_PASSWORD=123456       #配置root用户给的密码为123456-v ./mysql/conf:/etc/mysql/conf.d   #配置文件数据卷映射-v ./mysql/data:/var/lib/mysql      #数据持久化数据卷映射mysql:5.7

三、具名和匿名挂载

1、匿名挂载

docker -v /var/lib/mysql/data

在-v时,只声明了容器的路径,没有声明宿主机的路径,就为匿名挂载

系统会宿主机的路径

2、具名挂载

docker -v mysqljuming:/var/lib/mysql/data

在-v时,声明的宿主机不是路径,而是一个字符串。

无论是匿名挂载还是具名挂载,其数据卷安装的路径都在/var/lib/docker/volumes/xxxx

命令:

docker volumes inspect 具名   #查看具名挂载的数据卷路径

3、指定挂载

docker -v /home/mysql:/var/lib/mysql/data

四、Dockerfile

Dockerfile用来构建镜像的构建文件

1、数据卷容器

创建数据卷Dockerfile文件,编写代码,保存

FROM tomcat
VOLOMU ["volume1","volume2"]
CMD echo "hello"

构建dockerfile文件

docker build -f /home/dcokerfile1  #dockerfile源文件路径-t tomcatfile         #dockerfile构建的镜像名

2、dockerfile构建步骤

1、编写一个dockerfile文件

2、构建docker build

3、运行docker run

4、发布 docker push(发布到docker hub、阿里云镜像库)

CMD :程序的启动入口程序,程序启动时,如果追加了其他命令,那么就会将dockerfile中的CMD命令替换掉

ENTRYPOINT:程序启动时,可以在追加其他命令,误会替换

查看docker build过程:

docker history 镜像ID

五、数据卷容器

1、实现多个容器之间数据共享

docker run --name mysql01 mysql:5.7  #启动容器musql1
docker run --name mysql02-volumes-from musql01   mysql:5.7 # -volumes-from,01作为父容器,02作为子容器,02共享01内的数据卷

数据共享,即使父容器镜像关闭,子容器的共享数据卷依旧存在。子父容器之间共享数据卷是一个双向复制的概念。

2、多个mysql之间共享数据库

docker run -d --name mysql01 -it -e MYSQL_ROOT_PASSWORD=123456 -v /etc/mysql/conf.d -v /var/lib/mysql mysql:5.7
docker run -d --name mysql02 -p 3307:3306 --volume-from mysql01 mysql:5.7

容器的生命周期一直持续到没有容器使用为止,所以容器之间的数据卷,只有所有的容器都关闭,共享的数据卷才会丢失。但是如果共享的数据卷同步到宿主机,那么所有的数据就会永久保存。

六、Docker网络

1、Docker0

docker如何处理容器网络互访?

1、查看容器IP
docker inspect ID

在这里查看容器ip

2、evth-pair技术

docker每启动一个容器,就会在宿主机上出现一个接口IP,同时每一个容器里面也会有一个接口IP,ecth-pair技术就相当一个桥梁,链接各个虚拟设备;

docker每一次启动都会非容器重新分配IP,在使用时,如果我们吧IP地址写死,那么就失去了高可用性,为了解决这个问题,引入--link这个技术。

--link建立两个容器之间的链接,可以通过容器名 进行ping

docker run -d --name tomcat03 --link tomcat02 tomcat
docker exec -it tomcat03 ping tomcat02

通过容器名可以实现互访

只能tomcat03ping通tomcat02,02ping不通03

docker exec -it 容器名 cat /etc/hosts

4、自定义网络

查看所有的docker网络

docker network ls

docker网络模式

bridge:桥接模式

none:不配置网络

host:与宿主机共享网络

container:容器网络连通

创建网络
docker network create --driver bridge            #桥接模式创建网络--subnet 192.168.0.0/16    #网络号--gateway 192.168.0.1      #网关mynet                      #网络名
使用自己创建的网络,创建容器,同网段之间的连通
docker run -d --name tomcat-net-01 --network mynet tomcat
docker run -d --name tomcat-net-02 --network mynet tomcat

查看自定义网络下的容器

docker network inspect mynet

自定义网络是可以实现容器之间,使用容器名互通。

不同的集群使用不同的网络,保证网络的健康。

跨网段互通

docker network connect tomcat01 mynet

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

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

相关文章

一些不重要的概念

QPS:Queries Per Second是衡量信息检索系统(例如搜索引擎或数据库)在一秒钟内接收到的搜索流量的一种常见度量。该术语在任何请求-响应系统中都得到更广泛的使用,更正确地称为每秒请求数(RPS:Request Per S…

瑞吉外卖:异常处理与文件操作

文章目录 全局异常处理器文件上传文件下载 全局异常处理器 在程序中使用异常处理器进行全局异常捕获,此处主要处理SQLIntegrityConstraintViolationException异常,在reggie->common里面新建一个全局的异常捕获类 GlobalExceptionHandler.java&#x…

【SystemVerilog】结构体真是太好用了~

前言 Verilog最大的缺陷之一是没有数据结构。在SystemVerilog中可以使用struct创建结构,struct只是把数据组织到一起,是数据的集合,所以是可综合的。 结构体是可以通过模块接口进行传递的,这就是本文想描述的内容。 一、结构体的…

uniapp实现点击标签文本域中显示标签内容

先上一个效果图 实现的效果有: ①.点击标签时,标签改变颜色并处于可删除状态 ②.切换标签,文本域中出现标签的内容 ③.点击标签右上角的删除可删掉标签,同时清除文本域中标签的内容 ④.可输入内容,切换时不影响输入…

C# Onnx C2PNet 图像去雾 室外场景

目录 介绍 效果 模型信息 项目 代码 下载 C# Onnx C2PNet 图像去雾 室外场景 介绍 github地址:https://github.com/YuZheng9/C2PNet [CVPR 2023] Curricular Contrastive Regularization for Physics-aware Single Image Dehazing 效果 模型信息 Model P…

‘sqlcmd‘不是内部或外部命令,也不是可运行的程序或批处理文件。

目录 一、问题 二、下载&安装sqlcmd 实用工具 三、验证 四、结果 一、问题 今天使用批处理文件执行SQLServer数据库的SQL语法时报错,提示sqlcmd不是内部或外部命令,也不是可运行的程序或批处理文件。,发生这个问题的原因是当前系统缺少…

基于udp协议的网络通信(windows客户端版+简易聊天室版),重定向到终端

目录 和windows通信 引入 思路 WSADATA 代码 运行情况 简单的聊天室 思路 重定向 代码 terminal.hpp -- 重定向函数 服务端 客户端 运行情况 和windows通信 引入 linux和windows都需要联网,虽然他们系统设计不同,但网络部分一定是相同的,所以套接字也是一样的 这…

matplotlib如何设置中文为宋体,英文为新罗马Times New Roman

问题描述 论文附图通常需要将中文设置为宋体,英文设置为新罗马字体(Times New Roman)。matplotlib中可以这样设置字体: plt.rcParams[font.sans-serif] [SimSun] plt.rcParams[font.sans-serif] [Times New Roman]但是这样设置…

7-Eleven用工数字化:零售哲学下的人效管理实践

2014年,一本《零售的哲学》在中国掀起热潮,揭示了7-Eleven便利店的新零售坪效管理秘诀。而对大部分零售企业来说,劳动力效率是坪效背后的主要支柱。近期,国内领先的劳动力管理云服务提供商盖雅工场发布了《聚焦人效、重塑组织&…

wps珠海市政府版本

功能 无广告,安装直接使用,word,excel,ppt功能齐全 步骤 双击exe文件,更改安装步骤即可,任意选择一个部门就可以了 获取资源 链接:https://pan.baidu.com/s/1IVfNVgLwsp5QBT2uX-yROQ?pwdme6f 提取码:me…

基于51单片机的微波炉温度控制器设计[proteus仿真]

基于51单片机的微波炉温度控制器设计[proteus仿真] 温度检测系统这个题目算是课程设计和毕业设计中常见的题目了,本期是一个基于51单片机的微波炉温度控制器设计 需要的源文件和程序的小伙伴可以关注公众号【阿目分享嵌入式】,赞赏任意文章 2&#xff…

嵌入式驱动学习第三周——container_of()宏

前言 Linux内核编程中,会经常看见一个宏函数container_of,那么这究竟是什么呢,本篇博客记录学习container_of的过程。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可…

Claude3 正式发布,支持多模态(附注册使用教程)

免费使用教程请看到最后!!!!! AnthropicAI 官推发布消息,正式推出Claude 3,沉寂了很久的Anthropic 终于亮剑放了大招。Claude 3 系列模型,包括Claude 3 Opus、Claude 3 Sonnet 和 C…

鸿蒙Next学习-Flex布局

Entry Component struct FlexCase {build() {//需要在构造参数上传Flex({ direction: FlexDirection.Row,justifyContent:FlexAlign.Center }) {//flex布局Row().width(100).height(100).backgroundColor(Color.Red)Row().width(100).height(100).backgroundColor(Color.Yellow…

L1-7 机工士姆斯塔迪奥【Java】

在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。 你需要处理这个副本其中的一个机制:NM 大小的地图被拆分为了 NM 个 11 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家…

办公自动化的得力助手 —— 定时执行专家

目录 一、软件简介 二、办公应用场景 1、自动化文件处理 2、定时提醒与日程管理 3、网络操作与远程控制 4、系统维护与优化 三、使用体验 四、总结 在快节奏的现代办公环境中,如何高效地管理任务、节省时间并提升工作效率成为了每个职场人士关注的焦点。今天…

字符设备驱动编写

文章目录 环境一、添加驱动(/sys/bus/i2c/drivers/mpu6050_1)驱动和设备树扯上关系二、注册一个(种/类?)字符设备(/proc/devices,243 mpu6050_1)三、手动创建一个字符设备&#xff0…

web部署 三

案例: 1/在其中一个网站目录下创建\software文件夹,里面放txtppt/mp4/iso,文件类型。 2/web站点目录浏览启动应用。 3/用win10客户机浏览software目录下文件,并下载。txtppt/mp4/iso,发现问题并解决。 首先我们先建立一个software的文件夹并…

微服务初识

1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 1.1.单体架构 单体架构:将业务的所有功能集中在一个项目中开发,打…

力扣串题:反转字符串中的元音字母

​​​​​​​ 双指针&#xff0c;注意判断是否为元音的操作 bool IsVowel(char s){if(sa||se||si||so||su||sA||sE||sI||sO||sU) return true;return false; }char * reverseVowels(char * s){int len strlen(s),i0;while(i<len-1){if(IsVowel(s[i])&&IsVowel(s…