Docker系列教程14-Docker数据持久化

简介: 原文:http://www.itmuch.com/docker/14-docker-volume/容器中数据持久化主要有两种方式:数据卷(Data Volumes)数据卷容器(Data Volumes Dontainers)数据卷数据卷是一个可供一个或多个容器使用的特殊目录,可以绕过UFS(Unix File System)。

原文:http://www.itmuch.com/docker/14-docker-volume/

容器中数据持久化主要有两种方式:

  • 数据卷(Data Volumes)
  • 数据卷容器(Data Volumes Dontainers)

数据卷

数据卷是一个可供一个或多个容器使用的特殊目录,可以绕过UFS(Unix File System)。

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除
  • 一个容器可以挂载多个数据卷

注意:数据卷的使用,类似于 Linux 下对目录或文件进行 mount。

创建数据卷

示例:

docker run --name nginx-data -v /mydir nginx

执行如下命令即可查看容器构造的详情:

docker inspect 容器ID

由测试可知:

  • Docker会自动生成一个目录作为挂载的目录。
  • 即使容器被删除,宿主机中的目录也不会被删除。

删除数据卷

数据卷是被设计来持久化数据的,因此,删除容器并不会删除数据卷。如果想要在删除容器时同时删除数据卷,可使用如下命令:

docker rm -v 容器ID

这样既可在删除容器的同时也将数据卷删除。

挂载宿主机目录作为数据卷

docker run --name nginx-data2 -v /host-dir:/container-dir nginx

这样既可将宿主机的/host-dir路径加载到容器的/container-dir中。

需要注意的是:

  • 宿主机路径尽量设置绝对路径——如果使用相对路径会怎样?
    • 测试给答案
  • 如果宿主机路径不存在,Docker会自动创建

TIPS

Dockerfile暂时不支持这种形式。

挂载宿主机文件作为数据卷

docker run --name nginx-data3 -v /文件路径:/container路径 nginx

指定权限

默认情况下,挂载的权限是读写权限。也可使用:ro 参数指定只读权限。

示例:

docker run --name nginx-data4 -v /host-dir:/container-dir:ro nginx

这样,在容器中就只能读取/container-dir中的文件,而不能修改了。

数据卷容器

如果有数据需要在多个容器之间共享,此时可考虑使用数据卷容器。

创建数据卷容器:

docker run --name nginx-volume -v /data nginx

在其他容器中使用-volumes-from 来挂载nginx-volume容器中的数据卷。

docker run --name v1 --volumes-from nginx-volume nginx
docker run --name v2 --volumes-from nginx-volume nginx

这样:

  • v1、v2两个容器即可共享nginx-volume这个容器中的文件。
  • 即使nginx-volume停止,也不会有任何影响。
目录
相关文章
|
4月前
|
机器人 网络安全 数据安全/隐私保护
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
本文介绍了如何在服务器上搭建NTQQ机器人,通过官方NTQQ对接各框架,实现QQ登录的稳定运行。文章提到了需要准备一台服务器和相应的软件,并详细描述了通过SSH链接服务器、创建文件夹和配置文件、编辑配置文件地址端口、运行容器等步骤。同时,文章还介绍了VNC连接的使用和配置,以及使用watchtower进行NTQQ的更新。文章总结起来就是在服务器上搭建NTQQ机器人,实现QQ登录的稳定性和自动登录功能,同时提供了更新和维护的方法。
200 3
autMan奥特曼机器人-对接Docker版本NTQQ详细教程
|
29天前
|
弹性计算 Ubuntu Linux
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS
阿里云服务器一键安装Docker社区版教程,基于系统运维管理OOS自动化部署。支持Ubuntu 22.04/20.04、CentOS 7.7-7.9及Alibaba Cloud Linux 3.2104 LTS。前提条件:ECS实例需运行中且有公网。步骤:选择Docker扩展并安装,验证成功通过命令`docker -v`查看版本号。
243 79
|
3月前
|
缓存 Linux Docker
【最新版正确姿势】Docker安装教程(简单几步即可完成)
之前的老版本Docker安装教程已经发生了变化,本文分享了Docker最新版安装教程,其他操作系统版本也可以参考官 方的其他安装版本文档。
2976 3
【最新版正确姿势】Docker安装教程(简单几步即可完成)
|
3月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
242 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
3月前
|
关系型数据库 MySQL Java
【Docker最新版教程】一文带你快速入门Docker常见用法,实现容器编排和自动化部署上线项目
Docker快速入门到项目部署,MySQL部署+Nginx部署+docker自定义镜像+docker网络+DockerCompose项目实战一文搞定!
|
3月前
|
关系型数据库 数据管理 应用服务中间件
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,为了实现数据的持久化和共享,可以通过数据卷(Data Volumes)和数据卷容器(Data Volume Containers)两种方式来管理数据。数据卷是一个独立于容器的挂载目录,可以跨多个容器共享和重用。数据卷容器则是一种特殊容器,用于维护数据卷,便于数据迁移和共享。本文通过示例详细介绍了这两种方法的使用步骤。
|
4月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
792 3
|
4月前
|
存储 Kubernetes Docker
|
4月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
96 1
|
4月前
|
存储 安全 数据管理
Docker中实现数据持久化
【10月更文挑战第8天】
84 1

热门文章

最新文章