📜  Docker-存储(1)

📅  最后修改于: 2023-12-03 15:00:30.544000             🧑  作者: Mango

Docker 存储

Docker 是一款优秀的容器化平台,为了更好地管理容器,Docker 提供了多种存储方式。本文将为您介绍 Docker 的存储策略及存储相关概念。

存储驱动

Docker 使用存储驱动来管理镜像和容器的数据存储。

存储驱动类型包括:

  • aufs
  • btrfs
  • devicemapper
  • overlayfs
  • zfs

通常情况下,Docker 会自行选择存储驱动来管理镜像和容器数据存储。您也可以通过配置 /etc/docker/daemon.json 文件的 storage-driver 来指定存储驱动。

{
  "storage-driver": "overlay2"
}
Docker 镜像存储

镜像是一个可执行的包,其中包含了运行 Docker 容器所需的所有依赖项和文件。

当您从 Docker Hub 或其它 Docker 镜像仓库获取镜像时,它会被安装到本地缓存中,称为镜像仓库。默认情况下,镜像存储在 /var/lib/docker/image 目录下。

您可以通过 docker images 命令查看本地镜像,使用 docker rmi 命令来删除本地镜像。

# 查看本地镜像
docker images

# 删除本地镜像
docker rmi IMAGE_ID
Docker 数据卷

Docker 数据卷可以为容器提供持久化存储,它可以在多个容器之间共享数据。

以下是创建和使用数据卷的示例:

# 创建数据卷
docker volume create my-vol

# 查看数据卷
docker volume ls

# 运行容器,挂载数据卷
docker run -it --name my-container -v my-vol:/data ubuntu

# 在容器中使用数据卷
echo "hello docker" > /data/test.txt
Docker bind mount

Docker bind mount 可以将宿主机的文件或目录挂载到容器中,它可以对容器中的文件进行修改,而不会影响到宿主机的文件。

以下是创建和使用 bind mount 的示例:

# 创建文件
echo "hello docker" > /home/test.txt

# 运行容器,挂载 bind mount
docker run -it --name my-container -v /home/test.txt:/data/test.txt ubuntu

# 在容器中查看文件
cat /data/test.txt
Docker tmpfs

Docker tmpfs 可以创建一个基于内存的临时文件系统,它可以存储容器中的数据。当容器被删除时,数据也会被删除。

以下是创建和使用 tmpfs 的示例:

# 运行容器,挂载 tmpfs
docker run --name my-container --tmpfs /data ubuntu

# 在容器中使用 tmpfs
echo "hello docker" > /data/test.txt
总结

Docker 提供了多种存储方式,包括存储驱动、镜像存储、数据卷、bind mount 和 tmpfs。您可以根据不同的场景选择不同的存储方式来管理容器数据。