Docker学习第三天(Docker数据卷管理)

1.Docker数据卷管理

  在Docker中,要想实现数据的持久化(所谓Docker的数据持久化即数据不随着Container的结束而结束),需要将数据从宿主机挂载到容器中。目前Docker提供了三种不同的方式将数据从宿主机挂载到容器中:

1.volumes:Docker管理宿主机文件系统的一部分(默认文件位置:/var/lib/docker/volumes) 常用

由上图可知我们到了 /var/lib/docker/volumes 目录下有的文件名很长这时匿名 二有的则是我们创建时制定的

2.bind mounts:可以存储在宿主机系统的任意位置

但是,bind mount在不同的宿主机系统时不可移植的,比如Windows和Linux的目录结构是不一样的,bind mount所指向的host目录也不能一样。这也是为什么bind mount不能出现在Dockerfile中的原因,因为这样Dockerfile就不可移植了。
3.tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统 不常用

三种方式示意图:

2.Volume数据卷的使用

管理卷

docker volume create edc-nignx-vol //创建一个自定义容器卷
docker volume ls //查看所有容器卷
docker volume inspect edc-nginx-vol //查看指定容器卷详情信息

用卷创建一个容器

docker run -d -it --name=edc-nginx -p 8800:80 -v edc-nginx-vol:/usr/share/nginx/html nginx
//-v代表挂载数据卷,这里使用自定数据卷edc-nginx-vol,并且将数据卷挂载到 /usr/share/nginx/html (这个目录是yum安装nginx的默认网页目录)。
//如果没有通过-v指定,那么Docker会默认帮我们创建匿名数据卷进行映射和挂载。

清理卷:

docker container stop edc-nginx //暂停容器
docker container rm edc-nginx //移出容器
docker volume rm edc-nignx-vol//删除自定义数据卷

3.Bind Mounts 的使用

Bind Mounts 绑定挂载

docker run -d -it --name=nginx-test -v /app/wwwroot:/usr/share/nginx/html nginx
//这里指定了将宿主机上的 /app/wwwroot 目录(如果没有会自动创建)挂载到 /usr/share/nginx/html (这个目录是yum安装nginx的默认网页目录)。

验证绑定

docker inspect nginx-test

清理

docker container stop nginx-test
docker container rm nginx-test

 

参考学习:https://www.cnblogs.com/edisonchou/p/docker_volumes_introduction.html (推荐)

posted @   笑花大王  阅读(173)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
点击右上角即可分享
微信分享提示