自学内容网 自学内容网

Docker数据管理-容器数据卷

Docker数据管理-容器数据卷

什么是容器数据卷

数据卷是一个可供容器使用的特殊目录,它绕过文件系统,可以提供很多专用的特性:

  • 数据卷可以在容器之间共享和重用

  • 对数据卷的修改会立马生效

  • 对数据卷的更修不会影响镜像

  • 数据卷会一直存在知道没有容器使用

数据卷的使用类似于Linux下对目录或者文件进行mout操作。数据的持久化应该在本地服务器而不是在容器内。数据卷就可以实现目录的挂载,容器用于计算,数据回归本地存储!

在这里插入图片描述

使用数据卷

使用命令进行挂载 -v

docker run -it -v #主机目录地址:容器目录地址
#测试
docker run -it  -v /home/test:/home centos /bin/bash
# 启动之后可以通过docker inspect 容器id查看容器的详细信息

在这里插入图片描述

测试文件的同步
在这里插入图片描述

安装mysql

#获取镜像
[root@VM-4-17-centos /]# docker pull mysql:5.7
# 运行容器并做数据挂载  安装启动mysql需要配置密码

-d 后台启动
-p 端口映射
-v 数据卷挂载
-e 环境配置
-- name 容器名称
[root@VM-4-17-centos home]# docker run -d -p 3336:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

#启动成功之后使用mysql连接工具进行连接

在这里插入图片描述

#在本地测试新建一个test数据库,查看映射的路径是否正确

在这里插入图片描述

在这里插入图片描述

#讲mysql容器彻底删除 再次进入mysql/data目录,test文件夹还是存在,即挂载到本地的数据卷依旧没有丢失
[root@VM-4-17-centos /]# docker rm -f mysql01

具名挂载和匿名挂载

所有的docker容器内的卷,没有指定目录的情况下都是在 目录。
在这里插入图片描述

#如何区分是具名挂载还是匿名挂载
-v 容器内路径    #匿名挂载
-v 卷名:容器内路径    #具名挂载
-v /宿主机路径:容器内路径   #指定路径挂载
#docker挂载的数据卷默认权限是读写(rw),用户也可以通过(ro)指定为只读,说明只能通过宿主机进行数据修改
[root@VM-4-17-centos /]# docker run -d -p --name nginx01 -v /home/nginx:/etc/nginx:ro nginx
#加了ro之后容器内挂载的数据卷的数据就无法修改了

原文地址:https://blog.csdn.net/Grady00/article/details/135775200

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!