数据卷笔记

news/2025/3/19 1:29:20/

使用数据卷

# 语法:主要是这个-v 类似-p
$ docker run -it -v 主机目录:容器内目录# run一个centos容器,并使用目录挂载
# /home/ceshi:主机home目录下的ceshi文件夹  映射:centos容器中的/home
# 将容器里边的home目录挂载到linux的home下边的ceshi目录
$ docker run -it -v /home/ceshi:/home centos /bin/bash# docker inspect 容器id 查看是否挂载成功
$ docker inspect 54db68df3d7f
实战 使用Mysql
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
--name 容器名字
$ 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=root --name mysql01 mysql
查看所有容器的挂载信息
$ dnf install jq # 安装jq工具(一个轻量级的json格式处理工具)
$ docker inspect $(docker ps -aq) | jq '.[] | {Name: .Name, Mounts: .Mounts}' # 查看所有容器的挂载信息

扩展:具名和匿名挂载

#1. 匿名挂载
-v 容器内路径!,这里我们没有写主机的路径,那么它就会自动的生成一个目录
#1-1. 使用命令匿名挂载
$ docker run -d -P --name nginx01 -v /etc/nginx nginx#1-1. 查看所有volume(卷)的情况  
$ docker volume ls 
DRIVER    VOLUME NAME(卷名字,这个一串乱码其实是真实存在的目录)
local     dd3decdb4e2533d16d216ba19d8797c2ad95b4a2a1b6a90f87eb98bbed3b3758
# 注:这里发现,这种就是匿名挂载,我们在 -v只写了容器内的路径,没有写容器外的路径!#2. 具名挂载
#2-1. 使用命令具名挂载
$ docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx nginx
# 注1:juming-nginx:/etc/nginx,给/etc/nginx命名为juming-nginx,并没有写主机地址
# 注2:说白了就是 -v 卷名:容器内路径#2-2. 查看一下这个卷
$ docker volume inspect juming-nginx
[{"CreatedAt": "2021-06-25T20:18:22+08:00","Driver": "local","Labels": null,# 下方就是挂载到主机的具体路径"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data","Name": "juming-nginx","Options": null,"Scope": "local"}
]# 三种挂载: 匿名挂载、具名挂载、指定路径挂载
-v 容器内路径               #匿名挂载
-v 卷名:容器内路径         #具名挂载
-v /宿主机路径:容器内路径  #指定路径挂载 docker volume ls 是查看不到的# 通过 -v 容器内容路径 ro rw 改变读写权限
ro  readonly    # 只读
rw  readwrite   # 可读可写 默认
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx

数据卷容器

# 创建docker01
$ docker run -it --name docker01 caoshipeng/centos# 查看容器docekr01内容
$ ls
bin home lost+found opt run sys var
dev lib media proc sbin tmp volume01
etc lib64 mnt root srv usr volume02
# 不关闭该容器退出
CTRL + Q + P# 创建docker02: 并且让docker02 继承 docker01
$ docker run -it --name docker02 --volumes-from docker01 caoshipeng/centos:latest# 查看容器docker02内容
$ ls
bin home lost+found opt run sys var
dev lib media proc sbin tmp volume01
etc lib64 mnt root srv usr volume02# 可以看到,docker01和02里面的volume文件夹同步了

http://www.ppmy.cn/news/1580203.html

相关文章

缓存及其问题解决

目录 缓存的使用缓存的3大问题缓存穿透(cache penetration)什么是缓存穿透Why does cache penetration occur?(如何产生的?)The hazard of cache penetration(缓存穿透的危害) 如何解决缓存穿透问题解决1:缓存空对象(…

leetcode:1281. 整数的各位积和之差(python3解法)

难度:简单 给你一个整数 n,请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例 1: 输入:n 234 输出:15 解释: 各位数之积 2 * 3 * 4 24 各位数之和 2 3 4 9 结果 24 - 9 …

【STM32】从新建一个工程开始:STM32 新建工程的详细步骤

STM32 开发通常使用 Keil MDK、STM32CubeMX、IAR 等工具来创建和管理工程。此处是 使用 Keil MDK5 STM32CubeMX 创建 STM32 工程的详细步骤。 新建的标准库工程文件已上传至资源中,下载后即可直接使用。 标准库新建 STM32 工程的基本目录结构:STD_STM…

神经网络微调技术解析

神经网络微调技术 微调(Fine-tuning)是迁移学习的核心技术,通过在预训练模型基础上调整参数,使其适应特定任务或领域。以下从传统方法、参数高效微调(PEFT)、新兴技术三个维度展开,覆盖主流技术…

基于SpringBoot的“酒店管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“酒店管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统总体架构图 系统E-R图 系统首页界面 系统注册…

Unity中解锁图片像素点,动态闭合轨迹检测

Unity中解锁图片像素点,动态闭合轨迹检测 介绍资源下载搭建总结 介绍 因为最近在研究Mane天蚕变的游戏完整逻辑,研究了两套方案做解锁图片的功能,这里我先讲一下我的这个图片像素点的方案解锁图片,这个逻辑其实很简单就是利用划线…

RabbitMQ五种消息模型

RabbitMQ 是一款基于 AMQP 协议的高性能消息中间件,广泛应用于分布式系统中,用于实现服务之间的异步通信、解耦和负载均衡。RabbitMQ 提供了五种常见的消息模型,每种模型都有其独特的特点和适用场景。本文将详细介绍这五种消息模型&#xff0…

汉桑科技IPO:潜藏两大风险 公众投资者权益或受损

冰山之所以危险,是因为只有八分之一在水面上。 ——语出小说家海明威。 引 言 野村证券提供的一份报告显示,2025年前两个月,我国出口同比增长仅有2.3%,与去年四季度9.9%的增长显著下滑。与此同时,从2月1日开始&a…