docker数据卷

简介: docker数据卷

一.数据卷的作用


   用来实现容器与宿主机之间或容器与容器之间的数据共享

   对于一些容器我们我往往需要经常的修改配置文件,频繁的进入容器显得很麻烦。

   对于容器(mysql)中的数据,我们希望可以持久化到本地,作为一种备份。


二.数据卷特点


   数据卷可以在容器之间共享和复用

   对数据卷的修改会立即影响到对应容器

   对数据卷的修改不会影响镜像

   数据卷一直存在,即使容器被删除



实例1:

1.创建数据卷目录

mkdir /root/apps


2.运行Tomcat容器,并挂载数据卷到网页根目录

docker run -d -p 8081:8080 --name tomcat1 \

-v /root/apps:/usr/local/tomcat/webapps tomcat


3.访问测试


4.追踪查看容器日志,修改数据卷内容,看日志变化

docker logs -f tomcat1


cd /root/apps

mkdir ROOT

echo "<h1>www.tomcat.com</h1>" > /root/apps/ROOT/index.html


5.数据卷容器共享,并设置容器内目录只读

docker run -d -p 8082:8080 --name tomcat2 \

-v /root/apps:/usr/local/tomcat/webapps:ro tomcat


====================================


三.数据卷操作

1.自定义数据卷目录

docker run -v 本地目录路径:容器内路径


2.自动创建数据卷

docker run -v 数据卷名(自动创建):容器内路径


3.常用数据卷命令


查看数据卷

docker volume ls


创建数据卷

docker volume create data_vo1


查看某个卷详情

docker volume inspect data_vo1


删除数据卷

docker volume rm 数据卷名


删除未用的数据卷

docker volume prune


4.实例演示


具名挂载:

docker run -d -p 8083:8080 --name tomcat3 \

-v data_vo1:/usr/local/tomcat/webapps tomcat


ls /var/lib/docker/volumes/data_vo1/_data


匿名挂载:

docker run -d -p 8084:8080 --name tomcat4 \

-v /usr/local/tomcat/webapps tomcat


=======================================

实例2:数据卷挂载mysql


1.下载mysql5.7镜像

docker pull mysql5.7


2.启动mysql容器,映射端口、设置密码、挂载自动数据卷

docker run -itd --name mysql1 -p 3306:3306 \

-e MYSQL_ROOT_PASSWORD=123.com \

-v mysqldata:/var/lib/mysql mysql:5.7


3.连接数据库,创建测试表


4.删除mysql1容器

docker stop mysql1

docker rm mysql1


5.查看数据卷是否还有数据

ls /var/lib/docker/volume/mysqldata/_data


6.新建容器,复用旧数据卷

删除所有容器

docker rm -f $(docker ps -aq)


docker run -itd --name mysql1 -p 3306:3306 \

-e MYSQL_ROOT_PASSWORD=123.com \

-v mysqldata:/var/lib/mysql mysql:5.7


7.连接数据库,查看旧数据表是否存在


8.再新建容器,以修改后的配置文件启动

删除所有容器

docker rm -f $(docker ps -aq)


docker run -itd --name mysql1 -p 3306:3306 \

-e MYSQL_ROOT_PASSWORD=123.com \

-v mysqldata:/var/lib/mysql \

-v mysqlconf:/etc/mysql mysql:5.7


=======================================

Dockerfile挂载数据卷


1.创建目录

mkdir /root/data_volume

cd /root/data_volume


2.创建Dockerfile

vim Dockerfile

FROM centos:7

VOLUME ["volume01","volume02"]

CMD echo "---end---"

CMD /bin/bash


3.构建镜像

docker build -t testvolume .


4.启动容器

docker run -itd --name testvolume1 testvolume /bin/bash


5.查看测试数据卷


====================================

数据卷容器:容器间数据双向同步共享


1.创建两个容器,数据卷共享testvolume1


docker run -itd --name testvolume2 --volumes-from testvolume1 testvolume


docker run -itd --name testvolume3 --volumes-from testvolume1 testvolume


2.进入容器,测试共享

docker exec -it testvolume2 /bin/bash

cd volume1

touch test2


docker exec -it testvolume3 /bin/bash

cd volume1

ls

touch test3


3.关闭testvolume1,查看数据是否在

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
11月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
993 6
|
存储 安全 数据建模
Docker数据卷深入解析与操作技巧
通过巧妙使用Docker数据卷,我们就能实现数据的灵活管理和无缝迁移,享受容器化的便捷,同时确保数据的安全与高效共享。
271 6
|
关系型数据库 MySQL Linux
在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾
以上就是在Linux环境下备份Docker中的MySQL数据并传输到其他服务器以实现数据级别的容灾的步骤。这个过程就像是一场接力赛,数据从MySQL数据库中接力棒一样传递到备份文件,再从备份文件传递到其他服务器,最后再传递回MySQL数据库。这样,即使在灾难发生时,我们也可以快速恢复数据,保证业务的正常运行。
662 28
|
关系型数据库 MySQL Docker
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
15226 37
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用
448 27
|
存储 Docker 容器
Docker-基础(数据卷、自定义镜像、Compose)
通过数据卷实现持久化存储,通过自定义镜像满足特定需求,通过Docker Compose方便地管理多容器应用。掌握这些Docker基础概念和操作,可以显著提高开发和部署效率,确保应用程序的可移植性和可扩展性。
618 22
|
存储 Ubuntu 关系型数据库
《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例
《docker基础篇:7.Docker容器数据卷》包括坑、回顾下上一讲的知识点,参数V、是什么、更干嘛、数据卷案例
362 13
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
1229 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
401 1