Docker 入门教程之数据管理

作者: phpworkerman | 来源:发表于2021-08-12 22:45 被阅读0次
Docker 数据管理的方式

Docker 对于容器数据的存储推荐挂载到宿主机,以此减轻容器的大小,也方便数据和容器解耦。对于容器产生的数据有三种管理方式,分别是可持久化存储的 bind 和 volume,以及临时存储的 tmpfs,这三种方式各有特点:

  • bind(绑定挂载)
    指定宿主机中的目录或文件挂载到容器中,数据可以持久化储存,执行效率很高,但是依赖于主机的文件系统,不利于容器和宿主机解耦
  • volume(数据卷挂载)
    生成一个数据卷,可以同时绑定多个容器,并且数据可以共享,相比绑定挂载还有其它优势:
    1、更容易备份和迁移
    2、可以使用 Docker CLI 或 Docker API 进行管理
    3、可以在 Linux 和 Windows 平台工作
    4、可以更安全的在多个容器间共享
    5、可以选择卷的驱动程序,设置远程主机和云服务
  • tmpfs(临时挂载)
    数据存储在宿主机的内存中,重启之后数据清空,适合存储一些敏感数据
    Docker数据管理
数据管理的操作方式

在运行 docker run 命令进行启动容器时,有两种参数 -v(--volume)和 --mount 都可以实现数据挂载,但在个别场景有些区别:

  • -v 挂载方式
    三个参数通过一个字段实现,靠冒号(:)区隔,且必须按正确的顺序编写:
    1、(bind)第一个参数为宿主机路径,必填,如果路径不存在,会自动创建
    1.1、(volume)第一个参数为卷名,可以不设置,系统会为卷分配一个随机且唯一名称
    2、第二个参数为容器内绑定的目录,使用绝对路径,必填
    3、第三个参数为容器对挂载目录的操作权限,ro 为只读,rw 为读写(默认),可选
# 绑定挂载
docker run -v /var/www/log/:/var/www/nginx/html -it nginx /bin/bash
# 指定卷名
docker run -v test_volume:/etc/nginx/conf.d -it nginx /bin/bash
# 匿名卷
docker run -v /etc/nginx/conf.d -it nginx /bin/bash
卷信息
  • --mount 挂载方式
    参数以多字段 key=value 形式实现,比 -v 支持的功能更多,显示也更直观
    1、type(数据挂载类型),分为 bind、volume、tmpfs
    2、source 或 src(挂载源),对于绑定挂载需要指定宿主机的文件或目录
    3、destination 或 dst、target(目标容器路径),可以指定文件或目录
    4、readonly(是否设置只读),如果不设置,默认是读写
    5、bind-propagation(绑定传播),可设置 rprivate, private, rshared, shared, rslave, slave
docker run -it \
--name devtest \
--mount type=bind,source="$(pwd)"/target,target=/app \
  nginx
数据卷的管理
  • 创建数据卷
docker volume create 卷名
  • 查看数据卷列表
docker volume ls
  • 查看指定的数据卷信息
docker volume inspect 卷名
  • 删除数据卷
docker volume rm 卷名
# 删除所有数据卷
docker volume rm $(docker volume ls -q)
  • 删除未使用的数据卷
docker volume prune

相关文章

  • 39-docker(一)

    本章内容 ◆ Docker简介◆ Docker 镜像与制作◆ Docker 数据管理◆ Docker 网络◆ Do...

  • Docker入门教程(转帖)

    Docker入门教程(转帖)

  • Docker 入门教程之数据管理

    Docker 数据管理的方式 Docker 对于容器数据的存储推荐挂载到宿主机,以此减轻容器的大小,也方便数据和容...

  • Docker 搭建以太坊私有链

    首先需要安装 Docker,Docker 的安装和使用可以参看阮一峰老师的《Docker 入门教程》。Ethere...

  • Docker相关

    基础篇 CentOS7安装Docker Docker入门教程 国内yum源安装docker-ce 应用篇 持续集成...

  • docker(三)docker镜像文件

    数据管理前提1>docker容器不应该负责持久化2>业界使用docker,等价于使用服务3>官方使用docker,...

  • Docker

    Docker入门教程 Docker组成 1.docker服务端,docker服务端是一个服务进程,管理着所有的容器...

  • docker 镜像与容器

    Docker中通过模板创建镜像,Docker容器、仓库及数据管理[https://blog.51cto.com/f...

  • Docker入门,小学生级别

    一个简单的入门教程,超简单http://www.docker.org.cn/book/docker/what-is...

  • Docker的那些事儿—Docker数据管理(28)

    从本节开启Docker存储部分,学习docker是如何对数据管理的。 上一篇:Docker的那些事儿—容器与外部网...

网友评论

    本文标题:Docker 入门教程之数据管理

    本文链接:https://www.haomeiwen.com/subject/ogelbltx.html