ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Docker学习(六)-----Docker数据卷

2021-12-29 09:58:00  阅读:173  来源: 互联网

标签:volume 容器 8080 tomcat 学习 ----- Docker 数据 docker


十.Docker数据卷

问题:通过镜像创建一个容器,容器一旦被销毁,则容器内的数据将一并被删除,但有些情况下,通过服务器上传的图片出会丢失。容器中的数据不是持久化状态的.
那有没有一种独立于容器,提供持久化并能服务于多个容器的东西呢?

10.1什么是数据卷

数据卷:是一个可供一个或多个容器使用的特殊目录

特性:

  • 数据卷可以在容器之间共享和重用
  • 对数据卷的修改会立马生效
  • 对数据卷的更新,不会影响镜像
  • 数据卷默认会一直存在,即使容器被删除

10.2为什么需要数据卷?

这得从docker容器的文件系统说起,处于效率等一系列原因,docker容器的文件系统在宿主机上存在的方式很复杂,这会带来下面几个问题:

  • 不能在宿主机上很方便地访问容器中的文件
  • 无法在多个容器之间共享数据
  • 当容器删除时,容器中产生的数据将丢失

为了解决这些问题,docker引入了数据卷(volume)机制。数据卷是存在于一个或多个容器中的特定文件或文件夹,这个文件或文件夹以独立于docker文件系统的形式存在于宿主机中

数据卷的最大特点是:其生存周期独立于容器的生存周期

使用数据卷的最佳场景

  • 在多个容器之间共享数据,多个容器可以同时以只读或者读写的方式挂载同一数据卷,从而共享数据卷中的数据
  • 当宿主机不能保证一定存在某个目录或一些固定路径的文件时,使用数据卷可以规避这种限制带来的问题
  • 当你想把容器中的数据存储在宿主机之外的地方时,比如远程主机上或云存储上。

10.3数据卷应用

#1 创建数据卷
docker volume create 数据卷名称
#创建数据卷之后,默认会存放到目录 : /var/lib/docker/volume/数据卷名称/_data目录下
#2查看数据卷
docker volume inspect 数据卷名称
#3 查看全部数据卷信息
docker volume ls
#4删除数据卷
docker volume rm 数据卷名称
#5应用数据卷
#5.1当你映射数据卷时,如果数据卷不存在,Docker会帮你自动创建
docker run -v 数据卷名称:容器内路径 镜像ID
#5.2直接指定一个路径作为数据卷的存储位置
docker run -v 路径:容器内部的路径  镜像ID

10.4案例1

数据卷方式
创建数据卷,将项目案例放入数据卷中,启动Tomcat。来访问并进行查看(数据卷应用5.1)

docker volume create vol_qfnj #创建数据卷
docker run -it --name tomcat-8080 -d -p 8080:8080 -v vol_qfnj:/usr/local/tomcat/webapps/ tomcat #运行容器

路径方式
将项目案例放入指定路径中, -v数据卷。启动Tomcat。来访问并进行查看(数据卷应用5.2)

docker run -d -p 8080:8080 --name tomcat-8080 -v /opt/volumn_exam:/usr/local/tomcat/webapps tomcat

标签:volume,容器,8080,tomcat,学习,-----,Docker,数据,docker
来源: https://blog.csdn.net/qq_44623314/article/details/121851453

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有