数据卷详解和mysql redis在docker中映射宿主机文件启动

注意:任何文章的都是来自于官方文档的翻译和二度创作,所以建议大家直接去 DockerHub官方网站看官方配置说明:

一、数据卷

1、前期知识:在使用docker容器管理像redis和mysql这样对数据持久化很多必要的镜像时,务必要将这些容器运行中产生的数据保存到持久化文件中,并使用数据卷(-v命令)挂载到我们宿主机上的某一个路径进行保存,这样在下次启动启动会对之前的数据做一个数据恢复,也可以保证我们的数据不丢失。

2、数据卷:英文名 volume。在启动容器镜像时会使用 -v命令来指定宿主机与启动容器内部的某一个文件夹进行映射。这样就可以使宿主机的文件数据与容器内部进行互通。说白了,数据卷就是用于对docker镜像容器与宿主机数据映射互通的一个渠道。

3、为什么要使用数据卷:很简单,假如没有使用数据卷对容器内部数据文件夹与宿主机本地文件夹做一个映射,那么删除当前启动的docker容器,之前该容器产生的全部数据都会丢失,比如你启动一个mysql数据库镜像,没有做数据卷的数据映射,那么你使用该数据库创建的所有数据库、表、表中字段及数据,会随着该mysql镜像的删除而丢失。就是用数据卷来持久化数据到宿主机物理磁盘上。

4、数据卷命令介绍(一般使用数据卷挂载的文件主要是后期生成的数据,比如mysql的表数据,字段等等数据、配置文件、日志文件):
(1)命令:

-v 宿主机目录:容器内部目录

宿主机目录:这个可以是你自己创建的,也可以不写具体的文件路径,直接写一个数据卷名称,系统会自动分配一个文件目录路径去映射容器内部指定的目录的,之后也可以使用目录去查看的系统创建的这个数据卷对应宿主机的文件夹路径地址;
容器内部目录:这个启动容器的内部文件夹对应的地址,可以是数据或配置文件或日志文件的路径。这个路径可以通过官方文档获知,也可以先把容器镜像使用最简单启动方式启动起来,进入容器内部看看要挂载的文件的位置,便于之后要使用 -v命令去挂载。
注意:一旦有了数据卷做文件级别的互通,系统就会将容器内部的文件夹下的文件全部复制到宿主机数据卷对应的文件夹中,一旦宿主机对应的这些文件有变化,容器内部也会感知到,因为他们是相互影响的。

(2)找到容器内部目录(以启动tomcat为例演示):
a、先使用最简单的命令启动容器;
b、再进去内容内部;
c、查看目录。
在这里插入图片描述

5、常见数据卷的命令:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大家明白了数据卷这个是做什么的之后,那么再来看看官方文档对这一个镜像的启动命令就会明白。
还是建议大家去官方看文档,我以下演示的只是冰山一角,不全面的。
MySQL的Docker文档:https://registry.hub.docker.com//mysql?
Redis的Docker文档:https://registry.hub.docker.com//redis?

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
启动MySQLRedisDocker容器,可以按照以下步骤操作: 启动MySQL容器: 1. 拉取MySQL镜像:使用命令`docker pull mysql:5.7`或`docker pull mysql:8`,分别拉取MySQL 5.7和MySQL 8镜像。 2. 运行MySQL容器:使用命令`docker run -d -p 3306:3306 -v E:/DB/MySQL5.7/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD='1qaz@WSX3edc' --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci`,该命令会创建一个名为mysql容器,并将宿主机数据目录映射容器内的/var/lib/mysql目录,同时设置MySQL的根密码为'1qaz@WSX3edc'。 启动Redis容器: 1. 拉取Redis镜像:可以在Docker Hub上找到Redis的各个版本号,使用命令`docker pull redis:版本号`来拉取相应版本的Redis镜像。 2. 运行Redis容器:使用命令`docker run -d --name redis redis:版本号`,将版本号替换为你想要启动Redis版本号。该命令会创建一个名为redis容器,使用指定的Redis版本。 这样,你就成功启动MySQLRedisDocker容器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Dockerdocker启动MySQLRedis、Linux等应用](https://blog.csdn.net/qq_45277554/article/details/129292385)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [docker安装启动redis、nginx、mysql8详解](https://blog.csdn.net/qq_45473439/article/details/117191207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值