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

Docker:数据卷(挂载本地目录)

目录

  • 一、基本概述
  • 二、基本使用
  • 三、案例
  • 三、本地目录挂载


一、基本概述

数据卷:是一个虚拟目录,是容器内目录宿主机目录之间映射的桥梁。

数据卷的存放目录固定在:/var/lib/docker/volumes

在这里插入图片描述

二、基本使用

命令说明
docker volume create创建数据卷
docker volume ls查看所有数据卷
docker volume rm删除指定数据卷
docker volume inspect 数据卷名称查看某个数据卷的详情
docker volume prune清除数据卷

三、案例

【需求】

  • 创建Nginx容器,修改nginx容器内的html目录下的index.html文件内容。
  • 将静态资源部署到nginx的html目录。

【提示】

  • 数据卷是在docker容器创建的时候去挂载的,如果容器已经创建,则无法挂载。
  • 在执行docker run命令时,使用-v 数据卷:容器内目录可以完成数据卷挂载。
  • 当创建容器时,如果挂载了数据卷且数据卷不存在,docker会自动创建。

创建容器时配置数据卷

docker run -d --name nginx -p 80:80 -v html:/usr/share/nginx/html nginx:1.14.2

三、本地目录挂载

【需求】

  • 查看MySQL容器,判断是否有数据卷挂载。
  • 基于宿主机目录实现MySQL数据目录、配置文件、初始化脚本的挂载

【提示】

  • 在执行docker run命令时,使用-v 本地目录:容器内目录可以完成本地目录挂载。
  • 本地目录必须以/./开头,如果直接以名称开头,会被识别为数据卷而非本地目录
    • -v mysql:/var/lib/mysql会被识别为一个数据卷叫MySQL。
    • -v ./mysql:/var/lib/mysql会被识别为当前目录下的MySQL目录。
      1. 挂载/root/mysql/data到容器内的/var/lib/mysql目录。(数据目录)
      2. 挂载/root/mysql/init到容器内的/docker-entrypoint=initdb.d目录。(初始化脚本)
      3. 挂载/root/mysql/conf到容器内的/etc/mysql/conf.d目录。(配置文件)
      4. 挂载/root/mysql/log到容器内的/var/log/mysql目录。(日志目录)

创建本地挂载目录

mkdir -p /root/mysql/{conf,data,log} 

编写配置文件

vim /root/mysql/conf/my.cnf 
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
server-id = 1
log-bin=mysql-bin
expire_logs_days=30
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
max_connections=1000
symbolic-links=0
default-time_zone = '+8:00'

给文件授权

chmod 777 /root/mysql/data/ /root/mysql/log /root/mysql/init
chmod 644 /root/mysql/conf/my.cnf

创建docker容器,并挂载本地目录

docker run \
--name mysql \
-d \
-p 3306:3306 \
--restart unless-stopped \
-e MYSQL_ROOT_PASSWORD=root \
-v /root/mysql/data:/var/lib/mysql \
-v /root/mysql/init:/docker-entrypoint=initdb.d \
-v /root/mysql/conf:/etc/mysql/conf.d \
-v /root/mysql/log:/var/log/mysql \
mysql:8.0.32
http://www.dtcms.com/a/350332.html

相关文章:

  • FFmpeg 8.0 “Huffman“ 全面评测:Vulkan 加速、AI 集成与编解码革新
  • 8月25日
  • UPROPERTY的再次学习
  • 高通SNPE测试:6、在开发板上运行Inception v3 Model(oe-linux)
  • vite + react + tailwind(2025-08-25)
  • C++贪吃蛇---详细步骤
  • 2.4 Flink运行时架构:Task、SubTask、ExecutionGraph的关系
  • OPcache 高级技术文档:原理、监控与优化实践
  • Unity使用Sprite切割大图
  • JavaScript 性能优化实战:从理论到落地的技术文章大纲
  • 基于长短期记忆网络的多变量时间序列预测 LSTM
  • Redis 哨兵 Sentinel
  • 【沉浸式解决问题】NVIDIA 显示设置不可用。 您当前未使用连接到NVIDIA GPU 的显示器。
  • 实时监测蒸汽疏水阀的工作状态的物联网实时监控平台技术解析
  • VLLM的加速原理
  • 基于MATLAB实现支持向量机(SVM)进行预测备
  • 大模型的多机多卡训练
  • 神经网络|(十五)概率论基础知识-协方差标准化和皮尔逊相关系数
  • 亚马逊AWD美西新仓上线:旺季备货的效率革命与策略升级
  • 真实应急响应案例记录
  • 机器学习笔记
  • Neumann Networks for Linear Inverse Problems in Imaging论文阅读
  • CF2133D 鸡骑士
  • 基于遗传算法优化BP神经网络的时间序列预测 GA-BP
  • PNP机器人介绍:全球知名具身智能/AI机器人实验室介绍之多伦多大学机器人研究所
  • DeepSeek 14B模型本地部署与预训练实现方案
  • jsvmp是什么,如何使用
  • 入门Ubuntu操作系统
  • 深度学习:从手写数字识别案例认识pytorch框架
  • 用 GSAP + ScrollTrigger 打造沉浸式视频滚动动画