一看必会系列:docker 练习 8 Docker 数据存储管理

No Comments Docker

这次练习 数据卷容器。本地数据卷不如 -v灵活就不试了

先总结一下 三种方式,哪种用的爽用哪种
1.建立本地数据卷  
2.直接将主机的目录 挂载进容器
3.建立数据卷容器

第一种:建立本地数据卷
还是说一下
root@docker01:~# docker volume create -d 名字 test
test

目录生成在 /var/lib/docker/volumes/ 下面
root@docker01:~# ll /var/lib/docker/volumes/ |grep te
drwxr-xr-x  3 root root  4096 3月  19 16:17 test/

查看 数据卷 命令
root@docker01:~# docker volume ls
DRIVER              VOLUME NAME
local               test   —生成的数据卷
local               disk001
local               disk003

使用生成的数据卷  这个要注意 -v 后不有“/” 和其它挂载命令不同
docker run -it -v disk001:/opt alpine  #正确
docker run -it -v /disk001:/opt alpine  #不正确一定要注意

生成测试数据
/opt # ls   
1       11      13      15      17      19      20      4       6       8       {1.10}
10      12      14      16      18      2       3       5       7       9       {1.20}
/opt #

在主机的目录进行验证  两端一至为正常
root@docker01:/var/lib/docker/volumes/disk001/_data# ls
1  10  11  {1.10}  12  {1.20}  13  14  15  16  17  18  19  2  20  3  4  5  6  7  8  9

 

 

第二种用的太多。
-v /主机目录:/容器内目录
docker run -it -v /disk001:/opt alpine  #正确

------中间广告---------

第三种:

数据卷容器也是一个容器,但是它的目的是专门提供数据卷给其他容器挂载 。

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

root@docker01:~# docker run -it -v /dbdata –name dbdata alpine
/ # ls
bin     dev     home    media   opt     root    sbin    sys     usr
dbdata  etc     lib     mnt     proc    run     srv     tmp     var
/ #

创建两个 要挂载的容器
root@docker01:~# docker run -it –volumes-from /dbdata –name db1 alpine
root@docker01:~# docker run -it –volumes-from /dbdata –name db2 alpine

/ #
/ # ls
bin     dev     home    media   opt     root    sbin    sys     usr
dbdata  etc     lib     mnt     proc    run     srv     tmp     var
/ #

在这三个容器  dbdata  db1 db2 中任意修改/dbdata数据,其它容器都会被修改,可以理解为同一个盘

划重点,使用–volumes-from挂载,数据卷容器可以不启动

介绍:

在生产环境中使用 Docker,往往需要对数据进行持久化,或者需要在多个容器之间进行 数据共享,这必然涉及容器的数据管理操作 。
容器中的管理数据主要有两种方式 :
口数据卷 (DataVolumes): 容器内数据直接映射到本地主机环境;
口数据卷容器(DataVolume Containers): 使用特定容器维护数据卷。
本章将首先介绍如何在容器内创建数据卷,并且把本地的目录或文件挂载到容器内的数
据卷中 。 接下来,介绍如何使用数据卷容器在容器和主机、容器和容器之间共享数据,并实 现数据的备份和恢复 。

docker volume
除了 create 子命令外, docker volume 还支持 inspect (查看详细信息)、 ls (列
出已有数据卷)、 pru口e (清理无用数据卷)、 rm (删除数据卷)等

发表评论