每天都学一点

Docker学习(二) 数据卷(Volume)的使用

01 03月
作者:林健|分类:Docker

1.创建一个数据卷

2.挂载一个主机文件或目录作为数据卷

3.创建数据卷容器

4.删除数据卷

5.备份、恢复数据卷

 

1.创建一个数据卷

查看镜像docker images

REPOSITORY TAG    IMAGEID      CREATED     SIZE
ubuntu     16.04  77be327e4b63 4 weeks ago 124MB
registry   2.2    ad379b517aa6 4 years ago 225MB

 

创建容器时,创建数据卷

docker run --name test -v //test -t -i ubuntu: /bin/bash
进入容器
cd /var/test
echo "123" > 123

返回宿主机

查看宿主机上数据卷的目录

复制代码
docker inspect test(容器名)|grep //lib/docker/volumes
输出"Source": "/var/lib/docker/volumes/d63dfa0c733e120fb49ce3afaf86a5fa642e2c07046a744ddbc41cce31a1fc09/_data",
复制代码
cd //lib/docker/volumes/d63dfa0c733e120fb49ce3afaf86a5fa642e2c07046a744ddbc41cce31a1fc09/_data

 ls 就能看到在容器里创建的123文件

2.挂载一个主机文件或目录作为数据卷

echo "453" > /var/html/123 
docker run -t -i --name test1 -v /var/html/123(宿主):var/html/123(容器):ro ubuntu:16.04 /bin/bash

:ro设置文件只读,挂载的数据默认是可读可写

3.创建数据卷容器

docker run -t -i -v /var/volume1 -v /var/volume2 --name data ubuntu:16.04 /bin/bash

查看宿主机上与数据卷对应的目录

docker inspect data|grep /var/lib/docker/volumes
"Source""/var/lib/docker/volumes/c0e076e513c37bb6ba6d695d4663cc78e824685ace45e557d414df73de1785b4/_data",
"Source""/var/lib/docker/volumes/4a8bbd02daa3a7f2081e85fe0652d340ca823e8dbd834fdef50cca6eff68fa28/_data",

4.删除数据卷

docker volume rm 4a8bbd02daa3a7f2081e85fe0652d340ca823e8dbd834fdef50cca6eff68fa28

docker rm -vf data

连容器一起删除

5.备份、恢复数据卷

 备份volume1

复制代码
root@iZ8ldyhuwn988qZ:/# docker run -i -t --rm --volumes-data -v $(pwd):/backup ubuntu: tar cvf /backup/backup.tar /////volume1/ 
//volume1//+found mnt proc run srv tmp
复制代码

为了利用数据卷容器备份,使用--volumes-from标记来创建一个加载data容器卷的容器,并从主机挂载当前目录到容器的/backup目录。并备份data卷中的数据,执行完成之后删除容器--rm,此时备份就在当前的目录下了。

恢复volume1

先删除容器volume1

rm -rf /var/volume1

docker run --rm --volumes-from data -v $(pwd):/backup ubuntu:16.04 tar xvf /backup/backup.tar -C /
注意-C后面的路径,这个路径表示将数据恢复到容器里的路径。
命令中用"/",即表示将backup.tar中的数据解压到容器的/路径下。后面跟什么路径,就解压到这个路径下。因此这里用"/"
复制代码
root@iZ8ldyhuwn988qZ:/# docker run --rm --volumes-from data -v $(pwd):/backup ubuntu:16.04 tar xvf /backup/backup.tar -C /var/volume1/var/volume1/123root@iZ8ldyhuwn988qZ:/# docker attach data 
root@67a8bededa9d:/var/volume1# 
root@67a8bededa9d:/var/volume1# ls123root@67a8bededa9d:/var/volume1#
复制代码

参考:https://www.cnblogs.com/kevingrace/p/6238195.html


    浏览1 评论0
    返回
    目录
    返回
    首页
    Docker学习-私有仓库docker-registry的使用 ubuntu 远程 window

    发表评论