第四节.docker管理应用程序数据
- voluems:docker管理数组机文件系统的一部分(var/lib/docker/volumes)
- 官方文档
- 管理卷
- 卷有匿名卷和指定名字的卷
- docker voluem create nginx_vol #创建指定名字的卷
- docker run -itd –name=nginx_test –mount src=nignx_vol,dst=/usr/share/nginx/html nginx #src为空会创建一个匿名卷
- docker volume create nginx_vol
- docker volume ls
- docker volume inspect nginx_vol
- 卷有匿名卷和指定名字的卷
- 用卷创建一个容器
- docker run -itd –name=nginx_test –mount src=nignx_vol,dst=/usr/share/nginx/html nginx #创建的容器应用卷
- docker run -itd –name=nginx_test -v nginx_vol:/usr/share/nginx/html nginx #实现效果同上但是-v只支持数据卷不通用,推荐使用上面的
- 清理:
- docker container stop nginx_test
- docker container rm nginx_test [docker rm -f $(docker ps -q a)]
- docker volume rm nginx_vol
- 实例
- docker voluem create nginx_vol #创建
- docker voluem ls #列出所有的卷
- docker voluem inspect nginx_vol #查看具体卷的信息
- docker run -itd –name=nginx_test –mount src=nignx_vol,dst=/usr/share/nginx/html nginx #创建的容器应用卷
- docker exec -it nginx_test bash #进入容器
- cd /usr/share/nginx/html/#这个目录与以下那个目录相当于做了个软连接数据会实时同步
- ls
- touch /var/lib/docker/volumes/nginx_vol/_date/
- ls
- bind mounts:可以存储在宿主机系统的任意位置。
- 官方文档
- 用卷创建一个容器
- docker run -itd –name=nginx_test –mount type=bind,src=/app/wwwroot,dst=/usr/share/nginx/html nginx
- docker run -itd –name=nginx_test -v /app/wwwroot:/usr/share/nginx/html nginx #-v不支持bind
- 验证绑定
- docker inspect nginx_test
- 清理
- docker container stop nignx_test
- docker container rm nignx_test
- 注意
- 源文件不存在不会自动创建,会抛出一个错误
- 如果挂载的目标在容器中非空目录,则容器中原有目录将被隐藏,只显示目标目录的文件
- tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统