创建目录
[root@localhost ~]# mkdir /data
挂载本地的目录到容器里
[root@localhost ~]# docker run -itd -v /data/:/data centos bash
a235b71394ae177fa708de5d52350753879f8b176528a816f2b1e40e6baea55f
-v用来指定挂载目录,第一个data为宿主机本地目录,第二个data为容器里的目录,会在容器中自动创建
2.挂载数据卷
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f7b07b888e90 centos "bash" 3 minutes ago Up 3 minutes stupefied_swirles
在挂载目录时,可以指定容器的名字,不指定会随机定义可以用docker ps查看
[root@localhost ~]# docker run -itd --volumes-from stupefied_swirles f7b07b888e90 bashed_swirles centos1 bash
6b6061b6b09c8cf61609a409fe6fabf217f8e1214142d2e5b7f9a7e72725645e
使用了上一个数据卷和centos1镜像创建了一个新的容器
查询容器详细信息
[root@localhost ~]# docker inspect -f{{.Mounts}} 6b6061b6b09c
[{bind /data /data true rprivate}]
定义数据卷容器
1.建立数据卷容器 --name testvol 为容器的名字
[root@localhost ~]# docker run -itd -v /data/ --name testvol centos1 bash
2c1ac4cdad342647938369d3666509c96c71e8a462211af8b7e55d695efd3b46
让其他容器挂载到该数据卷(使用了上一个容器的数据卷)
[root@localhost ~]# docker run -itd --volumes-from testvol centos bash
704d75f52e2a0583e921f575cf1de6d86eac8a0405b69f47aa8cfd18435257fc
列出数据卷列表
[root@localhost ~]# docker volume ls
DRIVER VOLUME NAME
local be1394ad254559faf20886ac54f519f1a8525b63b1d594ec4094a7229a8934c5
2.先创建数据卷然后在创建数据卷容器

不进入容器直接查看
[root@localhost ~]# docker exec -it 704d75f52e2a ls
bin dev home lib64 media opt root sbin sys usr
data etc lib lost+found mnt proc run srv tmp var
数据卷的备份和恢复
备份
使用testvol数据卷新开一个容器,同时把本地/data backup/目录挂载在该容器/back下,这样在容器中/data/里面新建文件,我们就可以直接在/data/backup目录中看到。然后再把/data/目录下面的文件打包成data.tar文件放到backup目录下面
恢复
新建一个数据卷容器
[root@localhost ~]# mkdir /data/backup
再建一个新的容器
[root@localhost ~]# docker run -itd -v /data/ --name testvol centos bash
83a44ee716de9093e594c7a607e0e875dba8d34fa052bdbf081c54a12375eed3
[root@localhost ~]# docker run --volumes-from testvol -v /data/backup/:/backup centos tar cvf /backup/data.tar /data
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0536b49bee85 centos "tar cvf /backup/dat…" 11 seconds ago Exited (0) 10 seconds ago nifty_chebyshev
83a44ee716de centos "bash" 25 seconds ago Up 25 seconds testvol
[root@localhost ~]# ll /data/backup
total 12
-rw-r--r--. 1 root root 10240 Jan 31 05:44 data.tar
删除所有容器
[root@localhost ~]# docker rm -f $(docker ps -qa)
39e206d6ac38
e9b0f28055ed
475fcbfc80da
de497bc01cf9
704d75f52e2a
2c1ac4cdad34
6b6061b6b09c
f7b07b888e90
8ee231debbc6
恢复
新建一个数据卷容器
[root@localhost ~]# docker run -itd -v /data/ --name testvol2 centos bash
9709dfb9ca3f0ea86e76fc3f0a873a8d75699a813b3b9f2a15d2b71e76fe45a2
再建一个新的容器并挂载该数据容器,然后解压tar包
[root@localhost ~]# docker run --volumes-from testvol2 -v /data/backup/:/backup centos tar xf/backup/data/data.tar
本文介绍了如何在Docker中创建、挂载数据卷,以及数据卷的备份和恢复方法。通过示例展示了如何使用`docker run`命令挂载本地目录到容器,创建数据卷容器,并进行数据卷的备份(将数据打包成tar文件)和恢复(解压tar文件)。此外,还演示了如何使用`docker rm`命令删除容器。
1930

被折叠的 条评论
为什么被折叠?



