Docker的数据管理

用户在使用Docker的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作。

容器中管理数据主要有两种方式:

  • 数据卷
  • 数据卷容器

一、数据卷

数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性:

  • 数据库可以在容器之间共享和重用。
  • 对数据卷的修改会立刻生效。
  • 对数据卷的更新,不会影响镜像。
  • 卷会一直存在,直到没有容器使用。

1、在容器内创建一个数据卷

使用-v标记可以在容器内创建一个数据卷。多次使用-v标记可以创建多个数据卷。

docker run -d -P --name web -v /webapp jdeathe/centos-ssh

2、挂载一个主机目录作为数据卷

使用-v标记可以指定挂载一个本地的已有目录到容器中作为数据卷,比如我们把主机的/home/webapp挂载到容器的/mnt/webapp目录。

docker run -d -P --name web -v /home/webapp:/mnt/webapp jdeathe/centos-ssh

3、挂载本地主机文件作为数据卷

如果直接挂载一个文件到容器,使用文件编辑工具,可能会造成文件inode的改变。

docker run -ti -v /root/.bash_history:/root/.bash_history jdeathe/centos-ssh /bin/bash

同步容器和主机的命令历史。

二、数据卷容器

如果用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器其实就是一个普通的容器,专门用它提供数据卷供其他容器挂载使用方法如下。

首先创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:

 docker run -d --name dbdata -v /dbdata jdeathe/centos-ssh

然后,可以在其他容器中使用--volumes-from来挂载dbdata容器中的数据卷,下面我们创建db1和db2两个容器,并从dbdata容器来挂载数据卷。

docker run -d --name db1 --volumes-from dbdata jdeathe/centos-ssh
docker run -d --name db2 --volumes-from dbdata jdeathe/centos-ssh

我们可以看到三个容器共用一个数据卷,大家的数据都是同步的。其他的一些用户大家可以参照其帮助文档来进行测试。

时间: 2024-10-11 12:23:03

Docker的数据管理的相关文章

Docker的数据管理及网络通信问题

博文大纲: 一.docker的数据管理1.数据卷2.数据卷容器 二.docker网络通信1.端口映射2.容器互联 一.docker的数据管理 在docker中,为了方便查看容器内产生的数据或者将多个容器之间的数据实现共享,会涉及到容器的数据管理操作,管理docker容器中的数据主要有两种方式:数据卷和数据卷容器. 1.数据卷 数据卷是一个供容器使用的特殊目录,位于容器中,可将宿主机的目录挂载到数据卷上,对数据卷的修改操作立即可见,并且更新数据不会影响镜像,从而实现数据在宿主机与容器之间的迁移,数

Docker 基础 : 数据管理

用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作.容器中管理数据主要有两种方式:数据卷(Data Volumes),数据卷容器(Data Volume Containers). 数据卷 数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多有用的特性:1.    数据卷可以在容器之间共享和重用.2.    对数据卷的更改会立即生效.3.    对数据卷的更新不会影响镜像.

docker进阶——数据管理与网络

用户在使用 Docker 的过程中,势必需要查看容器内应用产生的数据,或者 需要将容器内数据进行备份,甚至多个容器之间进行数据共享,这必然会涉及 到容器的数据管理 (1)Data Volume (数据卷) (2)Data Volume Dontainers --- 数据卷容器 Data Volume ---数据卷 Data Volume 本质上是 Docker Host 文件系统中的目录或文件,使用类似 与 Linux 下对目录或者文件进行 mount 操作.数据卷可以在容器之间共享 和重用,对

Docker 容器数据管理:挂载、备份、恢复

挂载.备份.恢复数据. 创建集中卷组: docker run --name dbdata -v /dbdata centos7:file echo "Data-only container for mysql." 挂载使用: docker run -rt --volumes-from dbdata centos7:tar /bin/bash cd /dbdata touch aa bb cc db3:aa 备份: [[email protected] backup]# docker r

跟我一起学docker(六)--数据管理

1.数据卷 数据卷是一个可供容器使用的特殊目录,有如下特性: 数据卷可以在容器之间共享和重用 数据卷修改会立即生效 数据卷的更新不会影响镜像 如果有容器使用数据卷,该卷会一直存在 准备工作: 创建一个目录,并在目录里面创建文件,文件内写入内容. 在容器内创建数据卷 在使用docker run的命令时,使用 -v 标记可以在容器内创建一个数据卷,并且可以指定挂在一个本地已有的目录到容器中作为数据卷: docker run -d --name app1-it -v ${PWD}/webapp:/ro

[docker] 05 docker仓库&数据管理&端口映射

主要内容: 一.仓库市场 二.搭建本地私有仓库 三.数据卷 四.数据卷容器 五.端口映射 六.容器互联 一.仓库市场 1.1. 官方仓库:https://hub.docker.com/search/?q=&type=image 1.2. 第三方仓库:包括腾讯云 网易云.阿里云.DaoCloud等 二.搭建本地私有仓库 2.1. 使用resgistry镜像创建私有仓库 docker run -d -p 5000:5000 registry 查看ip,修改docker服务启动参数默认使用http访问

Docker的数据管理(volume/bind mount/tmpfs)

Docker提供了三种不同的方式用于将宿主的数据挂载到容器中:volumes,bind mounts,tmpfs volumes.当你不知道该选择哪种方式时,记住,volumes总是正确的选择. volumes是Docker数据持久化机制.bind mounts依赖主机目录结构,volumes完全由Docker管理.Volumes有以下优点: Volumes更容易备份和移植. 可以通过Docker CLI或API进行管理 Volumes可以无区别的工作中Windows和Linux下. 多个容器共

Docker数据管理与网络通信

Docker镜像的创建方法 Docker镜像除了是Docker的核心技术之外也是应用发布的标准格式.一个完整的Docker镜像可以支撑一个Docker容器的运行,在Docker的整个使用过程中,进入一个已经定型的容器之后,就可以在容器中进行操作,最常见的就是在容器中安装应用服务,如果要把已经 安装的服务进行迁移,就需要把环境以及搭建的服务生成新的镜像. 创建镜像的方法有三种: 基于已有镜像创建 基于本地模板创建 基于Docherfile创建 基于已有镜像创建 使用docker commit命令,

docker 实践四:数据管理

这篇是关于 docker 的数据管理. 注:环境为 CentOS7,docker 19.03. 一般容器中管理数据主要有两种方式: 数据卷(Data Volumes):容器内数据直接映射到本地主机环境. 数据卷容器(Data Volume Containers):使用特定容器维护数据卷. 主要来介绍如何创建数据卷,并且把本地的目录挂载到容器内,使用数据卷容器在容器和主机之间共享数据,并实现数据的备份和恢复. 数据卷 首先我们先来介绍下什么是数据卷:数据卷(Data Volume)是一个可供容器使