当前位置: 首页 > news >正文

Docker 进阶

1、容器数据卷

什么是容器数据卷?

就是当容器内存在了mysql,在里面书写了数据,如果容器删除了,那么数据也就没有了,通过容器数据卷的技术,可以让容器内的数据持久化到Linux服务器上

操作

#docker run -it -v 主机内地址:容器内地址 容器id#举例
#挂载
[root@iZf8zhsqf64x47n1tpdy6oZ ~]# docker run -it -v /home/test:/home centos /bin/bash
[root@cc94b6584256 /]# docker inspect cc94b6584256#查看容器元数据
[root@iZf8zhsqf64x47n1tpdy6oZ ~]# docker inspect cc94b6584256"Mounts": [{"Type": "bind","Source": "/home/test","Destination": "/home","Mode": "","RW": true,"Propagation": "rprivate"}],
#以上便是绑定成功,即当操作/home里的文件时,/home/test也会发生变化,两者是双向绑定的,即使容器关闭了,也是绑定的,只要一方操作,另一方也会变#在容器内操作
[root@cc94b6584256 /]# cd /home
[root@cc94b6584256 home]# ls
[root@cc94b6584256 home]# touch test.java
[root@cc94b6584256 home]# ls
test.java #主机内,能看到新创建的文件
[root@iZf8zhsqf64x47n1tpdy6oZ ~]# cd /home
[root@iZf8zhsqf64x47n1tpdy6oZ home]# ls
test 
[root@iZf8zhsqf64x47n1tpdy6oZ home]# cd test
[root@iZf8zhsqf64x47n1tpdy6oZ test]# ls
test.java

实战Mysql同步数据

docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0

2、匿名挂载和具名挂载

docker run -d -v 容器内地址 容器名                    	 匿名挂载
docker run -d -v 挂载名(一般不以/开头):容器内地址 容器名	  具名挂载
docker run -d -v 主机地址(一般以/开头):容器内地址 容器名   正常挂载#匿名挂载
[root@iZf8zhsqf64x47n1tpdy6oZ data]# docker run -d -v /etc/nginx nginx
d7a0eaa6d6b8ee7cd209e8e0a47aa70a6e81e72bcea3bb3ef0cce625ee71606c
#剧名挂载
[root@iZf8zhsqf64x47n1tpdy6oZ data]# docker run -d -v packet:/etc/nginx nginx
3c66cf3adfb285362b605868e9eca5501f3bc36480ba8332f37eb5380d28df2c
#正常挂载
[root@iZf8zhsqf64x47n1tpdy6oZ data]# docker run -d -v /home/nginx:/etc/nginx nginx
24821ad29fd67e5f10abe754517960710d303a586131f6113ae062f1f5a9136c

查询数据卷

docker volume

[root@iZf8zhsqf64x47n1tpdy6oZ data]# docker volume --help
Commands:create      Create a volumeinspect     Display detailed information on one or more volumesls          List volumesprune       Remove all unused volumesrm          Remove one or more volumes#查询全部挂载的内容,这个就是我刚刚挂载的内容
[root@iZf8zhsqf64x47n1tpdy6oZ data]# docker volume ls
DRIVER              VOLUME NAME
local               9c0b26cd142c9d0f1ee318e783fad711c1b03b6b7d73c86e07cc4a0601cf7c20
local               packet
local               portainer_data#查询出详细的信息
[root@iZf8zhsqf64x47n1tpdy6oZ data]# docker volume inspect packet
[{"Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/packet/_data",     "Name": "packet","Options": {},"Scope": "local"}
]

**"Mountpoint": "/var/lib/docker/volumes/packet/_data",** 要是没有指定地址,那么就挂载这个地址

拓展—ro rw 的添加

# docker run -d -v /home/nginx:/etc/nginx:ro nginx   只读
# docker run -d -v /home/nginx:/etc/nginx:rw nginx	 可读写只读只能通过主机操作,容器内部无法操作

3、初始Dockerfile

#创建一个Dockerfile文件,文件名就为Dockerfile,然后编辑成已下内容#在home目录下创建一个目录(dockerfile-test)
[root@iZf8zhsqf64x47n1tpdy6oZ home]# cd dockerfile-test/
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# ls#在该目录下创建Dockerfile文件,没有后缀
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# vim Dockerfile
#编辑文件的内容
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# cat Dockerfile 
FROM centos
VOLUME["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash

4、数据卷容器

实现三个数据库数据共享

#查看正在运行的docker 容器
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                        NAMES
f56f4cd48f94        mysql:5.7             "docker-entrypoint..."   44 hours ago        Up 44 hours         33060/tcp, 0.0.0.0:3310->3306/tcp            thirsty_joliot#查看镜像
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# docker images -a
REPOSITORY                      TAG                 IMAGE ID            CREATED             SIZE
tomcat01                        1.0                 0c109a855b95        2 days ago          684 MB
docker.io/portainer/portainer   latest              5f11582196a4        15 months ago       287 MB
docker.io/nginx                 latest              605c77e624dd        2 years ago         141 MB
docker.io/tomcat                9.0                 b8e65a4d736d        2 years ago         680 MB
docker.io/tomcat                latest              fb5657adc892        2 years ago         680 MB
docker.io/mysql                 5.7                 c20987f18b13        2 years ago         448 MB
docker.io/centos                latest              5d0da3dc9764        2 years ago         231 MB
docker.io/elasticsearch         7.6.2               f29a1ee41030        3 years ago         791 MB#启动新的容器,挂载之前的mysql
[root@iZf8zhsqf64x47n1tpdy6oZ dockerfile-test]# docker run -d --name mysql02 --volumes-from f56f4cd48f94 c20987f18b13-d 后台运行
--name 取个名字
--volumes-form 容器名|容器id    镜像名|镜像id  与他进行挂载

**问题:**想要实现多个数据库之间的挂载,但是却出现了一点问题,数据库启动一个,还是可以的,但是启动多了后就会自动停止

总结:挂载后的文件,在父容器删除后,挂载前更改的信息是依然存在的,是一个复制的方式

相关文章:

Docker 进阶

1、容器数据卷 什么是容器数据卷? 就是当容器内存在了mysql,在里面书写了数据,如果容器删除了,那么数据也就没有了,通过容器数据卷的技术,可以让容器内的数据持久化到Linux服务器上 操作 #docker run -…...

科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法

知网链接 一种修正评分偏差并精细聚类中心的协同过滤推荐算法 - 中国知网 (cnki.net) 摘要 协同过滤作为国内外学者普遍关注的推荐算法之一,受评分失真和数据稀疏等问题影响,算法推荐效果不尽如人意。为解决上述问题,本文提出了一种改进的聚类…...

云计算项目十一:构建完整的日志分析平台

检查k8s集群环境,master主机操作,确定是ready 启动harbor [rootharbor ~]# cd /usr/local/harbor [rootharbor harbor]# /usr/local/bin/docker-compose up -d 检查head插件是否启动,如果没有,需要启动 [rootes-0001 ~]# system…...

2.经典项目-海量用户即使通讯系统

1.实现功能-完成注册用户 完成用户注册的步骤(客户端) 1.将User移动到common/message文件夹下 2.在message中新增注册用户的结构体 const (LoginMesType "LoginMes"LoginResMesType "LoginResMes"RegisterMesType "RegisterMes"…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要:本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程,并提供了完整的实现代码。该系统采用了先进的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比,分析了性能指标如mAP、F1 Score等。文章深入探…...

VMware下创建虚拟机

Centos7是比较常用的一个Linux发行版本,在国内的使用比例比较高 安装完VMware一定要检查虚拟网卡有没有安装成功,如果没有VMnet1和VMnet8 虚拟机是无法上网的,就需要卸载重启电脑重新安装 控制面板—网络和Internet—网络连接 快捷方式打开&a…...

基于Ambari搭建大数据分析平台

一、部署工具简介 1. Hadoop生态系统 Hadoop big data ecosystem in Apache stack 2. Hadoop的发行版本 Hadoop的发行版除了Apache的开源版本之外,国外比较流行的还有:Cloudera发行版(CDH)、Hortonworks发行版(HDP)、MapR等&am…...

Vue template到render过程,以及render的调用时机

Vue template到render过程 vue的模版编译过程主要如下:template -> ast -> render函数(1)调用parse方法将template转化为ast(抽象语法树)(2)对静态节点做优化(3)生…...

阿里云服务器Ngnix配置SSL证书开启HTTPS访问

文章目录 前言一、SSL证书是什么?二、如何获取免费SSL证书三、Ngnix配置SSL证书总结 前言 很多童鞋的网站默认访问都是通过80端口的Http服务进行访问,往往都会提示不安全,很多人以为Https有多么高大上,实际不然,他只是…...

12 list的使用

文档介绍 文档介绍 1.list是可以在常数范围内的任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代 2.list的底层是带头双向链表循环结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和…...

控件交互与视图交互的区别

在实际应用中,控件交互和视图交互的区别主要体现在以下几个方面: (1)关注的对象不同:控件交互更关注于界面中的单个控件如何响应用户的操作,例如按钮的点击、列表项的滑动等。而视图交互则更关注于整个界面的布局、导航和交互设计…...

打包 加載AB包 webGl TextMeshPro 變紫色的原因

1.打包 加載AB包 webGl TextMeshPro 變紫色的原因 編輯器命令行https://docs.unity3d.com/cn/2019.4/Manual/CommandLineArguments.html 1.UnityHub 切換命令行參數 -force-gles 2.-force-gles(仅限 Windows)| 使 Editor 使用 OpenGL for Embedded Sys…...

美易官方:去年全球企业派息1.66万亿美元创新高

去年全球企业派息总额达到了1.66万亿美元,创下了历史新高。这一数字不仅彰显了全球企业的盈利能力和财务稳健性,也反映了它们对股东的责任感和对未来发展的信心。在这一背景下,微软和苹果这两家科技巨头在派息方面的表现尤为引人注目。 微软是…...

基于Springboot的面向智慧教育的实习实践系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的面向智慧教育的实习实践系统设计与实现(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller&…...

【数据库-黑马笔记】基础-SQL

本文参考b站黑马数据库视频,总结详细全面的笔记 ,可结合视频观看1~26集 MYSQL 的基础知识框架如下 目录 一、MYSQL概述 1、数据库相关概念 2、MYSQL的安装及启动 二、SQL 1、DDL【Data Defination】 2、DML【Data Manipulation】 ①、插入 ②、更新和删除 3、 DQL【Data…...

MySQL性能分析:性能模式和慢查询日志的使用

目录 一、性能模式 步骤1. 启用性能模式 步骤2. 查询性能数据 步骤3. 分析性能数据 步骤4. 优化与调整 注意事项 二、慢查询日志 步骤1. 启用慢查询日志...

【哈希表算法题记录】15. 三数之和,18. 四数之和——双指针法

题目链接 15. 三数之和 思路 这题虽然放在哈希表的分类里面,但是用双指针法会更高效。 之前的双指针我们要么是一头left一尾right,要么是快fast慢slow指针。这里是要计算三个数的和,我们首先对数组进行从小到大的排序,先固定一…...

代码随想录算法训练营Day44 ||leetCode 完全背包 || 518. 零钱兑换 II || 377. 组合总和 Ⅳ

完全背包 518. 零钱兑换 II 遍历硬币和金额&#xff0c;累加所有可能 class Solution { public:int change(int amount, vector<int>& coins) {vector<int> dp(amount1,0);dp[0]1;for (int i 0; i < coins.size();i){for(int j coins[i]; j < amount;…...

RabbitMQ发布确认高级版

1.前言 在生产环境中由于一些不明原因&#xff0c;导致 RabbitMQ 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&…...

【阿里云系列】-基于云效构建部署Springboot项目到ACK

介绍 为了提高项目迭代的速度加速交付产品给客户&#xff0c;我们通常会选择CICD工具来减少人力投入产生的成本&#xff0c;开源的工具比如有成熟的Jenkins&#xff0c;但是本文讲的是阿里云提高的解决方案云效平台&#xff0c;通过配置流水线的形式实现项目的快速部署到服务器…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

Java多线程实现之Callable接口深度解析

Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL

ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

PydanticAI快速入门示例

参考链接&#xff1a;https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...

【Java多线程从青铜到王者】单例设计模式(八)

wait和sleep的区别 我们的wait也是提供了一个还有超时时间的版本&#xff0c;sleep也是可以指定时间的&#xff0c;也就是说时间一到就会解除阻塞&#xff0c;继续执行 wait和sleep都能被提前唤醒(虽然时间还没有到也可以提前唤醒)&#xff0c;wait能被notify提前唤醒&#xf…...