1. 介绍

上一篇:使用Dockerfile文件(五)

之前有说过,在docker容器上进行的更改并不会主动被保存下来,除非你commit了,不然你重新运行这个镜像,生成新的容器,之前容器的内容就会没有了,因为容器只是一个进程而已。

所以说,容器运行时应该尽量保持容器存储层不发生写操作。

但是,有时候我们需要存储持久化的数据,比如数据库,你的数据都在容器中,肯定是不行的,因为一退出就没有了。

这个时候需要用到数据卷

数据卷就是可以让你把主机上的数据以挂载的方式链接到容器中,这样不同的容器也能共享,而且数据也不会因为容器的退出而丢失。

这个数据卷会被经常使用。

2. 使用

下面我们来体会一下数据卷的功能。

$ docker run -d -v ~/mynginx:/a -p 80:80 --name webserver nginx

这里命令会挂载主机的目录~/mynginx到容器中的目录/a

你可以试验一下,分别在两端更改内容,比如新建一个文件,看是不是都变化了。

我们也可以创建数据卷容器,数据卷容器也是一个正常的容器,这种容器可以为其他容器提供和共享数据。

比如,下面创建了一个数据卷容器:

$ sudo docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres

然后其他容器要使用这个数据卷容器的话,只要使用--volumes-from参数即可。

$ sudo docker run -d --volumes-from dbdata --name db1 training/postgres
$ sudo docker run -d --volumes-from dbdata --name db2 training/postgres

完结。

下一篇:Docker Compose 的介绍与安装 (七)

results matching ""

    No results matching ""