【Docker】docker存储配置与管理

文章目录

一、前置概念

Docker通过将主机中的文件系统挂载到容器中供容器访问,从而实现持久化数据存储。

Docker目前支持卷和绑定挂载这两种挂载类型来实现容器的持久化数据存储。

卷存储是主机文件系统的一部分,这部分由Docker管理,在Linux主机上默认是/var/lib/docker/volumes目录。它受到保护,非Docker进程不能修改这部分。卷是Docker 中持久存储容器的应用数据的首选方式。

卷支持使用卷驱动,卷驱动允许用户将数据存储在远程主机、云提供商,以及其他位置上可以以匿名方式或命名方式挂载卷。

二、容器使用卷

1、创建卷并使容器挂载该卷

(1)创建卷

powershell 复制代码
docker volume create test-vol

(2)列出本地Docker主机上的卷

powershell 复制代码
docker volume ls

(3)查看卷的详细信息

powershell 复制代码
docker volume inspect test-vol

(4)挂载

启动一个容器,并将test-vol卷挂载到容器的/world目录

powershell 复制代码
docker run -it -v test-vol:/world ubuntu /bin/bash

(5)查看目录

如上图中,容器列表有world目录,该目录实际指向的是test-vol卷

(6)退出容器

(7)查看是否挂载成功

powershell 复制代码
docker inspect 容器前6位  #本例容器为f6efcb

(8)删除容器和卷

容器停止运行,但卷仍处于容器生命周期,容器仍然会占用卷

删除容器后,即可成功删除卷

powershell 复制代码
docker container rm f6efcb
docker volume rm test-vol

2、启动容器时自动创建卷

在启动带有卷的容器时,若卷不存在,则Docker会自动创建卷

例:将myvol挂载到容器testnovol的/app目录下:

powershell 复制代码
docker run -d --name nginx-autovol --mount source=myvol,target=/app nginx

查看容器详细信息

powershell 复制代码
docker inspect nginx-autovol

停止并删除容器和卷

powershell 复制代码
docker container stop c7d870 #刚刚所创建的容器
docker container rm c7d870
docker volume rm myvol

3、使用容器充卷

执行命令启动一个运行nginx容器,并使用容器的/usr/share/nginx/html目录内容填充新卷nginx-vol

powershell 复制代码
docker run -d --name=nginxtest --mount source=nginx-vol,destination=/usr/share/nginx/html nginx

查看卷的详细信息

powershell 复制代码
docker volume inspect nginx-vol

查看主机上该卷所在目录的内容

powershell 复制代码
ls /var/lib/docker/volumes/nginx-vol/_data

删除容器和卷

三、谢谢观看!

相关推荐
日取其半万世不竭6 小时前
用 Portainer 可视化管理 Docker:容器再多也不用背命令了
运维·docker·容器
张忠琳9 小时前
【NVIDIA】NVIDIA Container Toolkit v1.19.1--07-NVCDI模块:CDI Spec生成引擎深度分析之七
云原生·容器·架构·kubernetes·nvidia
hqyjzsb11 小时前
AI证书和传统证书有什么区别?
人工智能·金融·数据挖掘·数据分析·aigc·创业创新·学习方法
沉迷学习 日益消瘦12 小时前
01-Kubernetes 入门:概念与安装
云原生·容器·kubernetes
weixin_4196583112 小时前
Docker 搭建 Jenkins 服务
java·docker·jenkins
CoderYanger13 小时前
A.每日一题:1979. 找出数组的最大公约数
java·程序人生·算法·leetcode·面试·职场和发展·学习方法
BullSmall15 小时前
Tomcat 部署 Jenkins → Docker Jenkins 完整迁移方案
docker·tomcat·jenkins
糟糕喔15 小时前
k8s-云原生cicd
云原生·容器·kubernetes
ruofu3317 小时前
下载nvidia_*_cu13的指令(更新:利用torch 版本拉取相关依赖)
docker·容器
独孤--蝴蝶17 小时前
Docker容器进阶(一)
运维·docker·容器