Docker知识:数据卷技术介绍
目录
今天给大家简单聊聊Docker中的数据卷知识。
-
Docker数据管理
大家在生产环境使用Docker部署项目的时候,基本都需要进行数据持久化、或多个容器间进行数据共享,这个就需要容器的数据管理来进行操作。
1.2 Docker数据持久化
Docker数据持久化就是容器中的数据不会随着容器的结束而随之结束,在Docker中如果需要实现数据的持久化,前提把数据从Docker容器挂载到宿主主机上去。
1.2 容器中数据管理的方式
-
数据卷(Data Volumes):容器内的数据直接映射到宿主主机环境
-
数据卷容器(Data Volume Containers):使用特定容器维护数据卷
2、数据卷的介绍
数据卷是一个可供容器内部使用的特殊目录,它将宿主主机的操作系统目录直接映射进容器内,类似于Linux系统中的 mount 操作。
2.1 数据卷作用
容器的持久化、容器间继承 + 共享数据
2.2 卷的概念
本质就是目录或文件,存在于一个或多个容器中,由docker挂载到容器中,但不属于联合文件系统,因此能够绕过合文件系统提供一些用于持续存储或共享数据的特性。卷的目的就是实现数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时同时删除其挂载的数据卷。
2.3 数据卷的特点
-
数据卷可以在容器之间实现共享和重用,容器间传递数据将变的高效方便
-
对数据卷内数据的修改会立马生效,无论是容器内操作还是本地操作
-
对数据卷的更新不会影响Docker镜像,解耦了应用和数据
-
数据卷的生命令周期不受容器的影响,除非你卸载它。
3、Docker数据卷常见的作用
-
数据持久化:比如MySQL数据库,数据目录要挂载到宿主主机或者别的地方,否则MySQL容器删除你的数据也会随之删除。
-
同步操作:比如我需要修改nginx的配置文件,不需要在进入容器内部,可以直接修改数据卷对应的文件就可以进行配置实时同步。
-
容器间数据共享:多个容器之间需要数据共享的时候
4、操作数据卷
4.1 常用命令
docker volume 指令值
指令值:
-
create: 创建一个volume
-
inspect: 显示一个或多个volume的信息
-
ls :列出所有的volume
-
prune :删除未使用的volume
-
rm: 删除一个或多个指定的volume
4.2 挂载数据卷
创建数据卷myvolume
docker volume create myvolume
运行nginx容器
docker run --name nginxtest -v myvolume:/usr/share/nginx/html -p 8000:80 -d nginx
查看数据卷挂载信息
docker volume inspect myvolume
数据卷新增文件并查看容器内挂载的目录文件是否同步
cd /var/lib/docker/volumes/myvolume/_data #进入容器卷目录
vi test.html #创建test.html 目录
ls
进入容器查看目录是否正常同步
docker exec -it nginxtest /bin/bash
cd /usr/share/nginx/html
ls
容器内删除test.html 查看myvolume是否也删除了
rm test.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
2021-08-03 硬件知识:打印机常见的故障及维护,值得收藏
2020-08-03 网络:WiFi6和WiFi5的区别介绍
2019-08-03 成为优秀程序员应该具备的8个特质
2019-08-03 成为优秀程序员应该具备的8个特质
2018-08-03 Web服务器、应用程序服务器、HTTP服务器区别
2018-08-03 Web服务器、应用程序服务器、HTTP服务器区别
2018-08-03 Web服务器、应用程序服务器、HTTP服务器区别