Docker 数据管理
数据卷
数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性:
- 数据卷可以在容器之间共享和重用
- 对数据卷的修改会立马生效
- 对数据卷的更新,不会影响镜像
- 卷会一直存在,直到没有容器使用
创建数据卷
挂载一个主机目录作为数据卷
#使用 -v 标记可以指定挂载一个本地主机的目录到容器中去 # -d : 以守护进程的形式运行 , --name:给容器起个名字 ,-v:挂载本地目录到容器目录,-p: 映射本机端口到容器端口,-v /var/www/:/var/www:ro :指定为只读,默认权限是读写。 docker run -d --name web -v /var/www/:/var/www -p 81:80 nginx
挂载一个主机文件作为数据卷
*注意:如果直接挂载一个文件,很多文件编辑工具,包括 vi 或者 sed --in-place ,可能会造成文件inode 的改变,从 Docker 1.1 .0起,这会导致报错误信息。所以最简单的办法就直接挂载文件的父目录。
#挂载主机 /etc/nginx/nginx.conf 文件到容器 /etc/nginx/nginx.conf docker run -d --name=file1 --restart=always -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf nginx
数据卷容器
如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。
创建一个命名数据卷容器 wpic-data
docker run -d -v /data --name wpic-data nginx
在其他容器中使用 --volumes-from 来挂载 dbdata 容器中的数据卷。
docker run -d --volumes-from wpic-data --name db nginx
数据卷容器的特点:
- 可以使用多个 --volumes-from 参数来从多个容器挂载多个数据卷
- 可以从其他已经挂载了数据卷的容器来挂载数据卷
- 使用 --volumes-from 参数所挂载数据卷的容器自己并不需要保持在运行状态。
- 删除了挂载的容器,数据卷并不会被自动删除。必须在删除最后一个还挂载着它的容器时使用 docker rm -v 命令来指定同时删除关联的容器。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号