创建目录
[root@localhost ~]# mkdir /data
挂载本地的目录到容器里
[root@localhost ~]# docker run -itd -v /data/:/data centos bash
a235b71394ae177fa708de5d52350753879f8b176528a816f2b1e40e6baea55f
2.挂载数据卷
[root@localhost ~]# docker run -itd --volumes-from
> affectionate_shirley `0d120b6ccaa8`
edca5b1efe9f1c66c203c51657697b31b000225eb0e39e50ee73a8fd78809962
affectionate_shirley上一步的容器 容器的名字
0d120b6ccaa8
镜像id
3.查询容器的详细信息
[root@localhost ~]# docker inspect -f {{.Mounts}} edca5b1efe9f
[{ /data /data true }]
4.建立数据卷容器
[root@localhost ~]# docker run -itd --volumes-from testvol centos bash
f5ebed23700a883d4b1de2d904290e22d850dea212016127f3adddcae297304f
查看数据卷列表
[root@localhost ~]# docker volume ls
DRIVER VOLUME NAME
local 0d9673f5736a322933be8983fdf2007637bbf3e46cb2c03b36a5e47314bb7a18
创建数据卷aaa
[root@localhost ~]# docker volume create aaa
aaa
[root@localhost ~]# docker run -itd -v aaa:/data --name aaa centos bash
21de61cb2af7f97e38bfd64252164756f73a6446c6e6f670f0c5830fa477862a
不进入容器直接查看
[root@localhost ~]# docker exec -it 21de61cb2af7 ls
bin dev home lib64 media opt root sbin sys usr
data etc lib lost+found mnt proc run srv tmp var
[root@localhost ~]# docker exec -it 21de61cb2af7 ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
12: eth0@if13: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
link/ether 02:42:ac:11:00:06 brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 172.17.0.6/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:6/64 scope link
valid_lft forever preferred_lft forever
备份
创建目录
[root@localhost ~]# mkdir /data/backup
[root@localhost ~]# docker run --volumes-from testvol -v /data/backup/:/backup centos tar cvf /backup/data.tar /data
/data/
tar: Removing leading `/’ from member names错误并不影响
[root@localhost ~]# ll /data/backup
total 12
-rw-r--r--. 1 root root 10240 Dec 4 17:38 data.tar
使用testvol数据卷新开一个容器,同时把本地的/vol data backup/目录挂载到该容器的/backup下,这样在容器中/backup目录里面新建的文件,我们就可以直接在/data/backup/ 目录中看到了。然后再把/data/目录下面的文件打包成data.tar文件放到/backup目录下面
恢复
新建数据卷容器
[root@localhost ~]# docker run -itd -v /data/ --name testvol2 centos bash
4d651fb30e5f014e40d566ec3dfcf6441f5398f1064a876291dd6fb55e36e004
挂载数据卷新建容器,并解包
[root@localhost ~]# docker run --volumes-from testvol2 -v /data/backup/:/backup centos tar xf /backup/data.tar