千家信息网

docker容器数据卷怎么使用

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,本篇内容介绍了"docker容器数据卷怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!容器数据
千家信息网最后更新 2024年11月24日docker容器数据卷怎么使用

本篇内容介绍了"docker容器数据卷怎么使用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

容器数据卷

什么是容器数据卷

docker的理念回顾

将应用和环境打包成一个镜像!

数据?如果数据都在容器中,那么我们容器删除,那么数据就会丢失! 需求:数据可以持久化

如MySQL,容器删了,就要跑路了! 需求:MySQL数据可以存储在本地!

容器之间可以有一个数据共享的技术! Docker容器中产生的数据,同步到本地!

这就是卷技术!其实就是目录的挂载,将我们容器内的目录挂载到Linux上面!

总结一句话:容器的持久化和同步操作!容器间也是可以数据共享的!

使用数据卷

方式一:直接使用命令来挂载 -v

docker run -it -v 主机目录 : 容器内目录

# 测试
[root@dockertest ~]# docker run -it -v /home/ceshi:/home centos /bin/bash

# 启动起来后我们可以通过 docker inspect 容器id 查看挂载信息
1
1

测试文件的同步

再来测试!

1、停止容器

2、宿主机上修改文件

3、启动容器

4、容器内的数据依旧是同步的!

好处:我们以后修改只需要在本地修改即可,容器内会自动同步!

实战:安装MySQL

思考:MySQL的数据持久化的问题!

# 获取镜像
[root@dockertest network-scripts]# docker pull mysql:5.7

# 运行容器。需要做数据挂载! # 安装启动mysql 需要配置密码,这是要注意的一点。

# 官方测试: docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

# 启动我们的
-d 后台运行
-p 端口映射
-v 数据卷挂载
-e 环境配置
--name 容器名字
[root@dockertest network-scripts]# docker run -d -p 3310: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
e669cf988dabeea812faa544be2511fe4a5ad0c250022afbd10081f304fe26d7

# 启动成功之后,我们在本地使用 sqlyog 来连接测试一下
# sqlyog--连接到服务器的3310 -- 3310 和容器内的 3306 映射,这个时候我们就可以连接上了!

# 在本地测试创建一个数据库,查看一下我们映射的路径是否ok!

假设我们将容器删除

发现,我们挂载到本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能!

具名和匿名挂载

# 匿名挂载
-v 容器内路径!
docker run -d -P --name nginx01 -v /etc/nginx nginx

# 查看所有的 volume 的情况
[root@dockertest network-scripts]# docker volume ls
DRIVER VOLUME NAME
local 1b3548d552bdac0cd277157af18c5925903c509940bff9390326a29c1cc83fa2
local 310d040dc6743c5b7b68e2c3cae0399b8103a0144a63c6b1749694f69a17cd91
local f472a5ba40dc3d7ad4768ee56ea1cff57132fd6f847bb72fd4431c7bd499cede

# 这里发现,这种就是匿名挂载,我们在 -v 只写了容器内的路径,没有写容器外的路径!

# 具名挂载
[root@dockertest network-scripts]# docker run -d -P --name nginx02 -v qls-nginx:/etc/nginx nginx
acbf53630d19aa7fc614ac54e61c36e3dcbd4d9d914de640fc15f7f841d4959e
[root@dockertest network-scripts]# docker volume ls
DRIVER VOLUME NAME
local 1b3548d552bdac0cd277157af18c5925903c509940bff9390326a29c1cc83fa2
local 310d040dc6743c5b7b68e2c3cae0399b8103a0144a63c6b1749694f69a17cd91
local f472a5ba40dc3d7ad4768ee56ea1cff57132fd6f847bb72fd4431c7bd499cede
local qls-nginx

# 通过 -v 卷名:容器内路径
# 查看一下这个卷

所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/xxxx/_data

我们通过具名挂载可以方便的找到我们的卷,大多数情况使用 具名挂载

# 如何确定是具名挂载还是匿名挂载,还是指定路径挂载!
-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径 :: 容器内路径 # 指定路径挂载!

拓展:

# 通过 -v 容器内路径,ro rw 改变读写权限
ro readonly # 只读
rw readwrite # 可读可写

# 一旦设置了这个容器的权限,容器对我们挂载出来的内容就有限定了!
docker run -d -P --name nginx02 -v qls-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v qls-nginx:/etc/nginx:rw nginx

# ro 只要看到ro就说明这个容器只能通过宿主机来操作,容器内部是无法操作!

初识Dockerfile

Dockerfile 就是用来构建 docker 镜像的构建文件!命令脚本!先体验一下!(commit可以构建,这里讲的时方式二)

通过这个脚本可以生成镜像,镜像时一层一层的,所以脚本是一个一个的命令,每个命令都是一层。

# 创建一个dockerfile文件,名字可以随意,建议起名为 Dockerfile
# 文件中的内容

FROM centosVOLUME ["volume01","volume02"]CMD echo "----end----"CMD /bin/bash

# 这里的每个命令,就是镜像的一层。

# 启动自己写的容器

这个卷一定和外部有一个同步的目录!

查看一下卷挂载的路径

测试一下刚才的文件是否同步出去了

这种方式使用的很多,因为我们通常会构建自己的镜像!

假设构建镜像时候没有挂载卷,要手动镜像挂载 -v 卷名 : 容器内路径!

数据卷容器

如两个mysql同步数据

# 启动3个容器,通过我们刚才自己写的镜像启动

# 测试:可以删除docker01,查看一下docker02和03 是否还可以访问这个文件

# 测试的结果,依旧可以访问

多个mysql实现数据共享

[root@dockertest network-scripts]# docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v /var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7

[root@dockertest network-scripts]# docker run -d -p 3310:3306l -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7

# 这个时候可以实现两个容器数据同步!

"docker容器数据卷怎么使用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

容器 数据 路径 镜像 同步 测试 文件 目录 命令 就是 内容 情况 宿主 方式 时候 脚本 两个 名字 宿主机 技术 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网购网络安全案例及分析报告 多开服务器频繁蓝屏 山东济南市联想服务器测评 服务器安全墙设置 东城电脑服务器回收机构 开网吧网络安全没办可以开业吗 高德地图软件开发平台 旅游网络软件开发公司 松江区正规数据库销售 网络安全高福利公司 公安网络安全主题宣传 即时通讯软件开发口碑怎么样 数据库有怎么编写储存过程 北京推广网络技术咨询排名靠前 数据库是怎么设计 mysql数据库错误调试 关于网络安全诗歌 网络安全知识手抄报图片简单 外部数据库有效 服务器检测软件版本 应对网络安全形式的战略规划 2021国家网络安全周创意短片 (中国 网络技术有限公司 旅游网络软件开发公司 实时同步数据库数据的方法 软件开发管理周报模板 逆水寒服务器等级65开66几天 计算机网络技术找工作难吗 中小家庭教育与学网络安全教育 netty 开源服务器
0