docker数据卷容器
数据卷容器
如果用户需要在容器之间共享一些持续更新的数据,最简单的方式是使用数据卷容器。数据卷容器其实就是一个普通的容器,专门用它提供数据卷供其他容器挂载使用,方法如下:
首先,创建一个数据卷容器dbdata,并在其中创建一个数据卷挂载到/dbdata:
[root@localhost ~]# docker run -it -d --name dbdata -v /data centos
然后可以在其他容器中使用–volumes-from来挂载dbdata容器中的数据卷,例如创建db1和db2两个容器,并从dbdata容器挂载数据卷:
[root@localhost ~]# docker run -it --name db1 --volumes-from dbdata busybox /bin/sh
/ # ls
bin dev home root tmp var
data etc proc sys usr //含有data目录
[root@localhost ~]# docker run -it --name db2 --volumes-from dbdata busybox /bin/sh
/ # ls
bin dev home root tmp var
data etc proc sys usr //含有data目录
此时,容器db1和db2都挂载同一个数据卷到相同的/dbdata目录。三个容器任何一方在该目录下的写入,其他容器都可以看到。
//db2容器内创建文件test
/data # touch test
/data # ls
test
//db1容器内查看
/ # cd data/
/data # ls
test
使用–volumes-from参数所挂载数据卷的容器自身并不需要保持在运行状态。
如果删除了挂载的容器(包括dbdata、db1和db2),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时显式使用docker rm -v命令来指定同时删除关联的容器。
创建nginx容器,提供网站和配置文件
- 创建目录
//创建存放页面内容和配置文件目录
[root@localhost ~]# mkdir /var/www/html -p
[root@localhost ~]# mkdir /config
//网页文件放到/var/www/html
[root@localhost html]# tree