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  与他进行挂载

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

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

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

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

相关文章

三、HarmonyOS 应用开发入门之运行Hello World

目录 1、课程对象 1.1、有移动端开发经验 1.2、无移动端开发经验 1.3、对 HarmonyOS 感兴趣 2、DevEco Studio 的使用 2.1、DevEco Studio 的关键特性 智能代码编辑 低代码开发 多段双向实时预览 多端模拟仿真 2.2、安装配置 DevEco Studio 2.2.1、官网开发工具下载地…

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

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

_数据_变量_内存

什么是数据? 存储于内存中代表特定信息的’东东’, 本质就是0101二进制具有可读和可传递的基本特性万物(一切)皆数据, 函数也是数据程序中所有操作的目标: 数据 算术运算逻辑运算赋值调用函数传参 … 什么是内存? 内存条通电后产生的存储空间(临时的)产生和死亡: 内存条(…

《深入Linux内核架构》第2章 进程管理和调度 (1)

目录 前言 2.1 进程优先级 2.2 进程生命周期 2.3 进程表示 2.3.1 进程类型 2.3.2 命名空间 2.3.3 进程ID号 2.3.4 进程关系 2.4 进程管理相关的系统调用 2.4.1 进程复制 2.4.2 内核线程 2.4.3 启动新程序 2.4.4 退出进程 前言 本章内容太多,分为两篇博…

游戏开发中的坑之十三 Lut贴图相关问题

1.网上下载的或者游戏截帧得到的Lut贴图贴上之后可能效果如下,需要在PS里垂直方向反转一下贴图。 2.相关设置: (1)取消勾选sRGB; (2)像素为1024x32或者512x16; (3&#…

2115. 从给定原材料中找到所有可以做出的菜

文章目录 题意思路代码 题意 题目链接 原材料和每道菜需要什么材料&#xff0c;能做那些菜 思路 拓扑排序暴力 代码 // 暴力 class Solution { public:vector<string> findAllRecipes(vector<string>& recipes, vector<vector<string>>&…

常用的C++ STL

这里写自定义目录标题 常用的C STLstackqueuedeque 常用的C STL 常用到的C STL&#xff0c;方便查询。 stack Stack是一种容器适配器&#xff0c;专门设计用于LIFO (last-in first-out)操作&#xff0c;仅从容器的一端插入删除元素&#xff08;back or top&#xff09;。 成…

【机器学习300问】36、什么是集成学习?

一、什么是集成学习&#xff1f; &#xff08;1&#xff09;它的出现是为了解决什么问题&#xff1f; 提高准确性&#xff1a;单个模型可能对某些数据敏感或者有概念偏见&#xff0c;而集成多个模型可以提高预测的准确性。让模型变稳定&#xff1a;一些模型&#xff0c;如决策…

酷开科技以消费者需求为导向冲刺OTT行业的星辰大海

通过大屏营销、互动营销等方式&#xff0c;提升品牌认知度和市场竞争力。酷开科技始终坚持以消费者的需求为导向&#xff0c;致力于为品牌方和消费者搭建高效、准确的沟通桥梁&#xff0c;开创OTT大屏营销新纪元。 伴随技术发展&#xff0c;智能电视已经从“尝鲜”变成了主流产…

服务器镜像是什么

镜像即镜像服务器。镜像服务器与主服务器的服务内容都是一样的&#xff0c;只是放在一个不同的地方&#xff0c;分担主服务器的负载量。 可以使用&#xff0c;但不是原版的。在网上内容完全相同而且同步更新的两个或多个服务器&#xff0c;除主服务器外&#xff0c;其余的都被称…

Go语言必知必会100问题-24 如何正确的对切片进行拷贝

如何正确的对切片进行拷贝 内置的 copy 函数实现了将源切片中的数据拷贝到目标切片中的功能&#xff0c;尽管这是一个常用的内置函数&#xff0c;但是还是有不少开发者使用有误。下面会通过具体的例子说明 copy 的错误使用。如下代码中期望通过 copy 函数将源切片 src 中的数据…

每日温度_单调栈_java

每日温度 leetcode链接 问题描述 给定一个整数数组 temperatures &#xff0c;表示每天的温度&#xff0c;返回一个数组 answer &#xff0c;其中 answer[i] 是指对于第 i 天&#xff0c;下一个更高温度出现在几天后。如果气温在这之后都不会升高&#xff0c;请在该位置用 0…

.NET MAUI 社区工具包 2023 年亮点

作者&#xff1a;Kym Phillpotts 排版&#xff1a;Alan Wang 2023 年已经过去了&#xff0c;让我们花点时间回顾一下 .NET MAUI Community Toolkit 项目的历程以及展望接下来的发展。作为 .NET MAUI 的配套产品&#xff0c;该开源库为开发人员提供了一组丰富多样的控件、转换器…

Axure基础 各元件的作用及介绍

图像热区 增加按钮或者文本的点击区域&#xff0c;他是透明的&#xff0c;在预览时看不见。 动态面板 用来绘制一下带交互效果的元件&#xff0c;他是动态的&#xff0c;如轮播图&#xff0c;一个动态面板里可以有多个子面板&#xff0c;每一个子面板对应着不同的效果。 他…

大数据笔记

文章目录 一、HBase1.HBase集群部署2.HBaseShell常用操作3.HBase过滤器 二、Spark1.spark集群部署 三、Hive1.Hive安装与配置与mySQL的安装2.Hivebeeline配置 四、Zookeeper1.Zookeeper集群部署2.ResourceManagerHA3.SparkHA4.Zookeeper案例 一、HBase 1.HBase集群部署 2.HBa…

C++容器——unordered_map浅谈

实现原理 unordered_map 在 C 标准库中的实现基于哈希表&#xff08;Hash Table&#xff09;数据结构。哈希表通过一个哈希函数将键转换为数组的索引&#xff0c;然后在对应的桶&#xff08;buckets&#xff09;中存储元素。当多个键映射到相同的哈希值时&#xff0c;通常采用…

《1w实盘and大盘基金预测 day2》

上贴指数预测还行&#xff0c;周三指数最低在3031&#xff0c;我预测的最低点3028。 昨天的预测 3028-3058-3072 今天gjd没有过多干预A股&#xff0c;主要去港股那边了。看的出来正在让市场自己走。目前技术指标还是好用的 3075应该不是这波行情的最高点 板块机会&#xff1…

【研发日记】,Matlab/Simulink开箱报告(十)——Requirements Toolbox

前言 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;五&#xff09;——S-Fuction模块(C MEX S-Function)》 见《开箱报告&#xff0c;Simulink Toolbox库模块使用指南&#xff08;六&#xff09;——S-Fuction模块&#xff08;TLC&#xff09;》 见《开…

JavaEE:网络编程

网络编程&#xff1a;通过代码完成基于网络的跨主机通信 跨主机通信方式&#xff1a; 1.TCP/IP网络 2.蓝牙通信 3.近场通信NFC 4.毫米波通信&#xff1a;功率高&#xff0c;带宽高&#xff0c;抗干扰能力差 其中TCP/IP网络是日常编程中最常涉及到的&#xff0c;最通用的跨主机通…

安卓六大布局

LinearLayout&#xff08;线性布局&#xff09; 1.简介 线性布局在开发中使用最多&#xff0c;具有垂直方向与水平方向的布局方式。LinearLayout 默认是垂直排列的&#xff0c;但是可以通过设置 android:orientation 属性来改变为水平排列。 2.常用属性 orientation&#xf…