Docker - 数据管理

本文介绍了Docker中的数据卷,其作为核心组件用于持久化数据,可跨容器共享,数据卷修改实时生效且独立于镜像。详细讲解了创建、查看、使用和管理数据卷的常用命令,以及如何挂载主机目录作为数据卷的操作方法。
摘要由CSDN通过智能技术生成

📂 数据卷

在这里插入图片描述


数据卷 是 Docker 的核心组件,用于持久化容器数据。它有几个重要的特性:

  • 🔄 可以在多个容器之间共享和重用
  • ✅ 对其的任何修改都会立即生效
  • 🚫 数据卷的更新不会影响镜像
  • 📌 默认情况下,即使容器被删除,数据卷仍会存在

🛈 注意: 数据卷的使用与 Linux 下对目录或文件进行 mount 非常相似。


📝 常用命令

  1. 创建数据卷
$ docker volume create my-vol
  1. 查看所有的数据卷
$ docker volume ls
  1. 查看指定数据卷的信息
$ docker volume inspect my-vol
  1. 启动一个挂载数据卷的容器
$ docker run -d -P \
    --name web \
    --mount source=my-vol,target=/usr/share/nginx/html \
    nginx:alpine
  1. 查看数据卷的具体信息(在 “Mounts” Key 下面):
$ docker inspect web
  1. 删除数据卷
$ docker volume rm my-vol

🚮 清理无主的数据卷(这可能会释放大量空间):

$ docker volume prune

☁️ 挂载主机目录

挂载主机目录作为数据卷是 Docker 的常用功能,使容器能够访问宿主机的文件系统。以下是详细的操作方法。


1️⃣ 挂载一个主机目录作为数据卷:

你可以使用 --mount 标记来指定从本地主机挂载目录到容器中:

$ docker run -d -P \
    --name web \
    --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html \
    nginx:alpine

这里,我们将主机的 /src/webapp 目录挂载到了容器的 /usr/share/nginx/html 目录。

⚠️ 注意: 使用 --mount 时,如果本地目录不存在,Docker 会报错。


2️⃣ 指定挂载为只读:

你可以将挂载的目录设置为只读,防止容器修改宿主机的文件:

$ docker run -d -P \
    --name web \
    --mount type=bind,source=/src/webapp,target=/usr/share/nginx/html,readonly \
    nginx:alpine

这样,尝试在容器内创建文件会遇到错误。


3️⃣ 查看挂载的数据卷信息:

你可以使用以下命令查看容器的挂载信息:

$ docker inspect web

这将显示关于容器的详细信息,包括挂载的目录。


4️⃣ 挂载一个本地主机文件作为数据卷:

你不仅可以挂载目录,还可以挂载单个文件:

$ docker run --rm -it \
   --mount type=bind,source=$HOME/.bash_history,target=/root/.bash_history \
   ubuntu:18.04 \
   bash

这样,你可以在容器中查看或编辑宿主机上的文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yueerba126

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值