声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://blog.csdn.net/halcyonbaby
内容系本人学习、研究和总结,如有雷同,实属荣幸!
动态挂卷
目前docker不支持动态挂卷。
有同事就提出,以下方法是否可行:
1. 将块设备通过ln链接到容器与host的映射目录。
2. 将块设备挂载到容器与host的映射目录。
以下是实验过程:
由于非特权无法看到/dev下的设备,因此ln链接实际是无效的。 同理,对于其他块设备,也是这样的。
当然,我们可以配置privileged,则可以看到这些设备。但是privileged本身存在很大的安全隐患。
code> [[email protected] ~]# docker run --rm -t -i -v /home/test:/home/test centos:latest bash [[email protected] /]# ls /home/test/ [[email protected] ~]# ln -s /dev/loop1 /home/test/loop1 [[email protected] ~]# ls /home/test/loop1 -l lrwxrwxrwx. 1 root root 10 Jan 23 03:33 /home/test/loop1 -> /dev/loop1 [[email protected] /]# ls /home/test/ -l total 0 lrwxrwxrwx. 1 root root 10 Jan 23 08:33 loop1 -> /dev/loop1
可以看到这种方法也是不行的。原因是容器的目录系统与host是隔离的。
因此即使映射到了容器中,在host中继续对映射目录镜像挂载操作,也不会影响容器内部。
[[email protected] ~]# docker run --rm -t -i -v /home/test:/home/test centos:latest bash
[[email protected] /]# ls /home/test/
a.txt
[[email protected] home]# touch /home/test/a.txt
[[email protected] home]# mount /dev/loop10 /home/test
[[email protected] home]# ls /home/test/
lost+found
[[email protected] /]# ls /home/test/
a.txt
[[email protected] home]# umount /home/test/
[[email protected] home]# ls /home/test
a.txt
那么有没有办法可以实现类似的目的呢。这篇blog(http://dockerone.com/article/149)给出了解决办法。
据说docker正在开发类似的特性,希望能release吧。
数据卷管理
那么docker希望我们如何完成容器内数据的管理呢?有一篇用户文档(http://docs.dockers.com/userguide/dockervolumes/)进行了讲解。简单来说,通过数据卷或者数据卷容器进行管理。
数据卷
数据卷是特别设计的目录,绕过了容器的Union File System,向容器提供持久化数据和共享数据的能力。
- 数据卷可以多个容器共享和重用
- 数据卷独立于容器存在
- 更新容器镜像,不影响数据卷
- 数据卷的读写是直接的,绕过容器的Union File System 例子:
$ docker run -t -i -v /test centos:latest bash $ docker run -t -i -v /home/test:/home/test centos:latest bash $ docker run -t -i -v /home/test/data.txt:/home/test/data.txt centos:latest bash
数据卷容器
$ docker run -d -v /data/ --name dbdata centos:latest bash
$ docker run -d --volume-from dbdata --name app centos:latest app
备份
$ docker run --volumes-from dbdata -v $(pwd):/backup busybox tar xvf /backup/backup.tar
参考:
1. docs.docker.com/userguide/dockervolumes 2. dockerone.com/article/149
时间: 2024-10-13 15:58:16