在上一篇文章《 node.js服务迁移到docker容器 》中,当容器被删除之后上传的文件将丢失,可以新建一个数据卷容器专门用来保存上传的文件,这个数据卷容器可以为多个应用容器提供数据持久化功能。
其实也可以挂载本地文件目录做为容器的数据卷,但使用数据卷容器更规范一些。
创建数据卷容器
sudo docker run -d -v /usr/local/upload-fiddle/public/files --name upload-fiddle-data 'dl.dockerpool.com:5000/ubuntu:14.04' echo 'upload-fiddle data container'
数据卷容器不需要运行以节约资源,它存在的目的只是对数据卷进行引用,避免数据卷被意外删除。
挂载数据卷容器
sudo docker run -idt --name='upload-fiddle' -p 127.0.0.1:80:80 --volumes-from upload-fiddle-data 'tangxinfa/upload-fiddle:0.0.1'
使用 --volumes-from
选项引用容器中的数据卷。
数据卷容器数据存储位置
查看数据卷容器挂载信息
sudo docker inspect -f {{.Mounts}} upload-fiddle-data
可以看到数据存储在宿主机的 /var/lib/docker/volumes/
目录下。
数据卷只有当最后一个引用它的容器使用 -v
选项进行删除( docker rm
命令)时,才会被删除。
可以使用 docker volume
命令对数据卷进行管理。