Docker数据卷管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hannah_zh/article/details/83964236

1、单目录挂载

[root@foundation51 ~]# docker run -it --name vm1 -v /tmp/data1:/data1 rhel7 bash
bash-4.2# cd /data1/
bash-4.2# touch file{1..5}
测试:

在这里插入图片描述

2、多目录挂载

[root@foundation51 ~]# docker run -it --name vm2 -v /tmp/data1:/data1 -v /tmp/data2:/data2 rhel7 bash
bash-4.2# cd /data1
bash-4.2# touch test{1..5}
bash-4.2# cd /data2
bash-4.2# touch test{1..5}
测试:

在这里插入图片描述

3、指定文件挂载

(前提:指定文件dvd.repo必须存在,yum源挂载)

[root@foundation51 ~]# docker run -it --name vm3 -v /tmp/data1:/data1 -v /tmp/data2:/data2 -v /etc/yum.repos.d/dvd.repo:/etc/yum.repos.d/dvd.repo:ro rhel7 bash
bash-4.2# cd /etc/yum.repos.d/
bash-4.2# ls
dvd.repo  rhel7.repo
bash-4.2# cat dvd.repo 
#[dvd]
#name=dvd
#baseurl=http://172.25.254.250/rhel7.3
#gpgcheck=0
bash-4.2# yum repolist
Skipping unreadable repository '///etc/yum.repos.d/rhel7.repo'
dvd                                                                                                 | 4.1 kB  00:00:00     
(1/2): dvd/group_gz                                                                                 | 136 kB  00:00:00     
(2/2): dvd/primary_db                                                                               | 3.9 MB  00:00:00     
repo id                                                     repo name                                                status
dvd                                                         dvd                                                      4751
repolist: 4751
bash-4.2# yum install -y net-tools
bash-4.2# yum install iputils   ##ping命令安装包
bash-4.2# ping 172.25.51.250 

4、数据卷容器挂载—数据共享(–volumes-from)

持续更新的数据需要在容器之间共享,最好创建数据卷容器。
数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的
先创建一个名为datevol的数据卷容器,专门共其他容器挂载。

[root@foundation51 ~]# docker run -it --name datavol -v /tmp/data1:/data1 -v /tmp/data2:/data2 -v /etc/yum.repos.d/dvd.repo:/etc/yum.repos.d/dvd.repo:ro rhel7 bash

在这里插入图片描述


注意:两者用法类似
docker run -d   ##创建一个将在系统后台运行的容器
docker create   ##基于镜像创建容器,但不启用
因此,datevol的数据卷容器,也可这样创建:
[root@foundation51 ~]# docker create --name datavol -v /tmp/data1:/data1 -v /tmp/data2:/data2 -v /etc/yum.repos.d/dvd.repo:/etc/yum.repos.d/dvd.repo:ro rhel7 bash

授权一个容器访问另一个容器的Volume,使用-volumes-from参数来执行docker run
[root@foundation51 ~]# docker run -it --name vm4 --volumes-from datavol rhel7 bash

在这里插入图片描述

5、备份数据卷

[root@foundation51 ~]# docker load -i ubuntu.tar 
Loaded image: ubuntu:latest
[root@foundation51 ~]# docker images ubuntu 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              07c86167cdc4        2 years ago         188 MB
[root@foundation51 ~]# cd /tmp/data1
[root@foundation51 data1]# ls
file1  file2  file3  file4  file5  test1  test2  test3  test4  test5
[root@foundation51 data1]# cp /etc/passwd .
[root@foundation51 data1]# docker run --rm --volumes-from datavol -v /tmp/backup:/backup ubuntu tar cf /backup/test.tar /data1

在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Hannah_zh/article/details/83964236