欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > docker学习笔记(三)--容器数据卷

docker学习笔记(三)--容器数据卷

2025/4/19 14:35:04 来源:https://blog.csdn.net/m0_47364139/article/details/139520663  浏览:    关键词:docker学习笔记(三)--容器数据卷

文章目录

  • 一、数据卷的介绍
  • 二、简单用法--直接指定挂载路径
  • 三、具名挂载与匿名挂载
    • 具名挂载
    • 匿名挂载

一、数据卷的介绍

docker将应用和环境打包成一个镜像,形成一个容器运行。那么容器产生的数据,如果不通过docker commit命令提交生成新的镜像,那么当容器删除之后,数据也就没有了。需求就是想让容器中的数据持久化下来。
下面就引出了数据卷的概念了:卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此docker不会在容器删除时删除其挂载的数据卷。
数据卷的特点:①可以在容器之间共享数据②在数据卷中的更改可以直接生效

二、简单用法–直接指定挂载路径

运行容器,通过-v选项指定挂载数据卷位置,命令如下docker run -it -v 主机目录:容器目录
下面运行一个mysql容器

docker run --name mysql -itd -p 3306:3306 -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 /bin/bash

选项解释
docker run创建并启动容器
–name mysql容器的名字是mysql
-itd分别表示交互式(interactive)、终端(tty)、以守护进程方式运行(detached)。这样可以使容器在后台运行,并且可以与其进行交互
-v /mydata/mysql/log:/var/log/mysql将主机上的 /mydata/mysql/log 目录挂载到容器内的 /var/log/mysql 目录,用于存储 MySQL 的日志文件
-v /mydata/mysql/data:/var/lib/mysql将主机上的 /mydata/mysql/data 目录挂载到容器内的 /var/lib/mysql 目录,用于存储 MySQL 的数据文件
-v /mydata/mysql/conf:/etc/mysql将主机上的 /mydata/mysql/conf 目录挂载到容器内的 /etc/mysql 目录,用于存储 MySQL 的配置文件
-e MYSQL_ROOT_PASSWORD=123456设置root用户的密码

在这里插入图片描述

三、具名挂载与匿名挂载

具名挂载

与直接使用-v选项指定挂载路径的区别是,没有指定挂载主机的目录路径,同时给生成的数据卷进行了命名(-v 卷名:容器内路径 )

docker run -d -P --name namemysql -v shujujuan1:/var/log/mysql -v shujujuan2:/var/lib/mysql -v shujujuan3:/etc/mysql mysql
在这里插入图片描述
所形成的数据卷都在/var/lib/docker/volumes目录中
在这里插入图片描述

匿名挂载

与直接使用-v选项指定挂载路径的区别是,没有指定挂载主机的目录路径(-v 容器内路径)

docker run -d -P --name unamemysql -v /var/log/mysql -v /var/lib/mysql -v /etc/mysql mysql

在这里插入图片描述
所形成的数据卷都在/var/lib/docker/volumes目录中
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词