8.3 备份、恢复或迁移数据卷备份
$ sudo docker run –rm –volumes-from test -v $(pwd):/backup ubuntu:14.04 tar cvf /backup/test.tar /testtar: Removing leading `/’ from member names/test//test/b/test/d/test/c/test/a
启动一个新的容器并且从test容器中挂载卷,然后挂载当前目录到容器中为 backup,并备份 test 卷中所有的数据为 test.tar,执行完成之后删除容器–rm,此时备份就在当前的目录下,名为test.tar。
$ ls # 宿主机当前目录下产生了 test 卷的备份文件 test.tar test.tar
恢复
你可以恢复给同一个容器或者另外的容器,新建容器并解压备份文件到新的容器数据卷
$ sudo docker run -t -i -d -v /test –name test4 ubuntu:14.04 /bin/bash $ sudo docker run –rm –volumes-from test4 -v $(pwd):/backup ubuntu:14.04 tar xvf /backup/test.tar -C / # 恢复之前的文件到新建卷中,执行完后自动删除容器 test/ test/b test/d test/c test/a
8.4 删除 Volumes
Volume 只有在下列情况下才能被删除:
docker rm -v删除容器时添加了-v选项docker run –rm运行容器时添加了–rm选项
否则,会在/var/lib/docker/vfs/dir目录中遗留很多不明目录。
参考文档:
Managing Data in Containers深入理解Docker Volume(一)深入理解Docker Volume(二)九、链接容器
docker 允许把多个容器连接在一起,相互交互信息。docker 链接会创建一种容器父子级别的关系,其中父容器可以看到其子容器提供的信息。
9.1 容器命名
在创建容器时,如果不指定容器的名字,则默认会自动创建一个名字,这里推荐给容器命名:
1、给容器命名方便记忆,如命名运行 web 应用的容器为 web2、为 docker 容器提供一个参考,允许方便其他容器调用,如把容器 web 链接到容器 db
可以通过–name选项给容器自定义命名:
$ sudo docker run -d -t -i –name test ubuntu:14.04 bash $ sudo docker inspect –format=”{{ .Nmae }}” test/test
注:容器名称必须唯一,即你只能命名一个叫test的容器。如果你想复用容器名,则必须在创建新的容器前通过docker rm删除旧的容器或者创建容器时添加–rm选项。
9.2 链接容器
链接允许容器间安全通信,使用–link选项创建链接。
$ sudo docker run -d –name db training/postgre
基于 training/postgres 镜像创建一个名为 db 的容器,然后下面创建一个叫做 web 的容器,并且将它与 db 相互连接在一起
$ sudo docker run -d -P –name web –link db:db training/webapp python app.py
–link <name or id>:alias选项指定链接到的容器。
查看 web 容器的链接关系:
$ sudo docker inspect -f “{{ .HostConfig.Links }}” web[/db:/web/db]










