docker数据卷

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 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,查看数据是否在

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
关系型数据库 MySQL Docker
【Docker】4、Docker 数据卷
【Docker】4、Docker 数据卷
34 0
|
4月前
|
关系型数据库 MySQL 数据库
百度搜索:蓝易云【【Docker】Docker部署Mysql并设置数据持久化教程】
通过以上步骤,您已经成功地在Docker中部署了MySQL,并设置了数据持久化,确保数据在容器重新启动或迁移时得以保留。
53 0
|
5月前
|
数据管理 数据库 数据安全/隐私保护
数据管理与持久化:深度解析Docker数据卷
Docker 数据卷在容器化应用中扮演着关键角色,它们提供了一种灵活且可持久化的方式来处理应用数据。本文将深入讨论 Docker 数据卷的基本概念、使用方法以及一系列高级应用场景,通过更为丰富和实际的示例代码,帮助大家全面掌握数据卷的使用和管理。
|
6天前
|
存储 数据管理 数据安全/隐私保护
【Docker专栏】Docker存储卷管理:数据持久化的关键
【5月更文挑战第7天】本文探讨了Docker容器中数据持久化的关键——存储卷,包括其独立于容器生命周期的特性、数据共享与迁移能力。Docker提供默认、命名、数据卷容器和挂载宿主机目录四种卷类型。创建与管理涉及`docker volume create`、`ls`、`run`等命令。最佳实践建议使用命名存储卷,定期备份,避免存储敏感数据,并清理未使用卷。了解和有效管理存储卷能提升容器灵活性和数据管理效率。
【Docker专栏】Docker存储卷管理:数据持久化的关键
|
13天前
|
Shell Docker Ruby
3.Docker容器的数据卷
3.Docker容器的数据卷
|
19天前
|
存储 运维 Docker
Docker从入门到精通:Docker 容器数据卷详解
Docker 数据卷是持久化容器数据的关键机制,允许跨容器或主机共享,即使容器删除数据仍保留。创建数据卷可通过命令行或容器启动时指定,挂载到容器目录以读写。使用 `docker volume` 命令可管理数据卷,适用于持久化存储、数据共享及备份场景。了解和善用数据卷能优化 Docker 应用程序的运维。
23 0
|
1月前
|
关系型数据库 MySQL 应用服务中间件
docker镜像、容器数据卷
docker镜像、容器数据卷
|
2月前
|
数据管理 应用服务中间件 nginx
Docker卷和数据管理
Docker卷和数据管理
18 1
|
3月前
|
存储 机器学习/深度学习 Cloud Native
深入浅出Docker容器数据卷
深入浅出Docker容器数据卷
42 1
|
4月前
|
消息中间件 Kubernetes NoSQL