【Docker】8. 容器数据卷

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 【Docker】8. 容器数据卷

一、卷技术介绍


现在我们知道docker的理念就是把应用和环境打包成镜像,方便我们去运行容器。


但是现在有一个问题,比如我容器里的mysql存了好多的数据,那万一容器被删除,数据是不是就没了?这显然不合适。


于是,一个新的需求产生了:将数据存储在容器之外的地方,比如本地。对应的解决方案就是卷技术了,通过它,将容器中产生的数据同步到本地,让容器之间可以共享数据。


卷技术,说白了就是目录的挂载,将容器内的目录挂载到linux上。如图所示,将容器里的/usr/mysql挂载到外部linux下的/home/mysql。现在不仅mysql容器可以使用,其他的2个容器同样可以使用,实现了数据共享。


1268169-20210528130044492-1992456528.png


所以,卷技术的关键词:持久化、同步、数据共享。


二、使用数据卷


使用命令-v


docker run -it -v 主机目录:容器目录


现在我要启动centos镜像,并且把容器内的/home目录,挂载到主机的/home/test/目录下:


docker run -it -v /home/test:/home centos /bin/bash


可以看到启动容器成功,为了方便,我多开一个窗口。


1268169-20210530002229976-1603285276.png


这时候用docker inspect命令来查看容器,可以看到挂载情况。


docker inspect 370ff4e87083


找到Mounts,可以看到具体绑定明细。


1268169-20210530003933336-26652337.png


现在容器内的/home目录下是空的,对应的主机的/home/test/下也是空的。


接着,我在容器内的/home下新建个文件new.txt,然后查看主机下的/home目录,发现文件已经同步。


1268169-20210530002904921-1437240742.png


反向操作


上面是从容器内到容器外,现在反过来,从主机目录下再增加一个文件second.txt,然后再到容器内查看,也是同步的。


1268169-20210530003512942-2089425698.png


停止容器


如果容器停止了,我在外面把文件都删掉了,当再次启动容器后进去查看,也是同步的。


1268169-20210530004631036-530223869.png


重启容器,进入容器的/home下查看,也是空的。


1268169-20210530004851665-866829511.png


相信现在应该可以体会到容器卷的作用了,比如有些容器里涉及需要改配置的,那么挂载到主机目录下之后,就不需要进入容器修改了,直接在外面修改,容器内自动同步。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3天前
|
运维 Docker 微服务
掌握 Docker Compose:简化你的多容器应用部署
在微服务架构和容器化技术普及的今天,管理多容器部署变得颇具挑战。Docker Compose 通过一个 YAML 文件定义和运行多容器应用,简化了部署和运维。本文介绍其基本概念、使用方法及优势,包括服务、项目、卷和网络等核心概念,并提供从安装到管理服务的详细步骤,助你轻松掌握 Docker Compose,提高开发效率和应用运维质量。
|
3天前
|
Cloud Native 持续交付 Docker
探索Docker容器化技术及其在软件开发中的应用
探索Docker容器化技术及其在软件开发中的应用
16 7
|
2天前
|
弹性计算 运维 持续交付
探索Docker容器化技术及其在生产环境中的应用
探索Docker容器化技术及其在生产环境中的应用
14 5
|
3天前
|
存储 虚拟化 开发者
深入理解Docker容器化技术
深入理解Docker容器化技术
23 6
|
6天前
|
持续交付 开发者 Docker
掌握 Docker:容器化技术在现代开发中的应用
Docker 是一个开源容器化平台,使开发者能够将应用程序及其依赖项封装在轻量级容器中,确保跨平台的一致性。本文介绍了 Docker 的基本概念、核心组件及优势,并展示了其在快速部署、一致性、可移植性和微服务架构中的应用。通过示例说明了 Docker 在本地开发环境搭建、服务依赖管理和 CI/CD 流程中的作用,以及多阶段构建、资源限制和网络模式等高级特性。掌握 Docker 可大幅提升开发效率和应用管理能力。
|
2天前
|
Cloud Native 持续交付 Docker
探索容器化技术Docker的奥秘
探索容器化技术Docker的奥秘
14 3
|
11天前
|
Cloud Native 持续交付 Docker
云原生技术实践:Docker容器化部署教程
【9月更文挑战第4天】本文将引导你了解如何利用Docker这一云原生技术的核心工具,实现应用的容器化部署。文章不仅提供了详细的步骤和代码示例,还深入探讨了云原生技术背后的哲学,帮助你理解为何容器化在现代软件开发中变得如此重要,并指导你如何在实际操作中运用这些知识。
|
14天前
|
应用服务中间件 Shell nginx
Docker容器操作基础命令
关于Docker容器操作基础命令的教程,涵盖了从启动、查看、删除容器到端口映射和容器信息获取的一系列常用命令及其使用方法。
53 14
|
28天前
|
存储 Docker 容器
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
在Docker中,容器退出后,通过docker ps命令查看不到,数据会丢失么?
|
2月前
|
Shell 应用服务中间件 nginx
docker 服务,镜像,容器命令总结
docker 服务,镜像,容器命令总结
133 4