网站首页 > 资源文章 正文
容器数据卷
什么是容器数据卷
docker的理念回顾
将应用和环境打包成一个镜像。
如果数据都在容器中,那么容器删除,数据就会丢失!需求:数据可以长久化,MySQL,容器删了,删库跑路。=需求:MySQL数据可以存储在本地=
容器之间可以有一个数据共享技术!Docker容器中产生的数据,同步到本地。这就是卷技术,目前的挂载,将我们容器内的目录,挂载到Linux上面。
总结:容器的持久化和同步操作,容器间也可以数据共享。
使用数据卷
# 方式一:直接使用命令挂载 -v
docker run -it -v 主机目录:容器内目录
# 测试
root@liuxiaoweideAir ~ # docker run -it -v /Users/liuxiaowei/ceshi:/home centos /bin/bash #主机目录:/Users/liuxiaowei/ceshi 容器目录:/home
# 启动之后,通过docker inspect 容器id 检验卷如何挂载
root@liuxiaoweideAir liuxiaowei # docker inspect 3af3cfc435c3
"Mounts": [
{
"Type": "bind",
"Source": "/Users/liuxiaowei/ceshi", # 主机内地址
"Destination": "/home", # docker 容器内的地址
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
测试文件的同步效果如图:
逆向测试
1、退出容器
2、然后在宿主机目录下进行操作
3、再启动容器
4、查看容器内目录文件同步变化
image.png
优点:以后修改只需在本地修改即可,容器内会自动同步。
实战:安装MySQL
思考:MySQL的数据持久化的问题
# 获取镜像
root@liuxiaoweideAir ~ # docker pull mysql:5.7
# 运行容器,需要做数据挂载, 安装启动mysql,需要配置密码的,这需要注意。去https://hub.docker.com/搜索mysql
# Start a mysql server instance
# Starting a MySQL instance is simple:
$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
# 启动容器
-d 后台运行
-p 端口映射
-v 卷挂载 (两个-v 挂载两个目录)
-e 环境配置
--name 容器名字
root@liuxiaoweideAir ~ # docker run -d -p 3310:3306 -v /Users/liuxiaowei/mysql/conf:/etc/mysql/conf.d -v /Users/liuxiaowei/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
42053d1fb7043624bb199b7f5d876ccd2299d5047230cee847a4dcabb5657ddf
# 启动成功之后,利用Navicat或者SQL PRO连接测试,连接到服务器的3310 --- 3310和容器内的3306映射。如下图
image.png
image.png
# 在本地测试创建一个数据库,查看一下我们映射的路径是否同步。
本例:root@liuxiaoweideAir data # ls
auto.cnf ib_logfile1 server-cert.pem
ca-key.pem ibdata1 server-key.pem
ca.pem ibtmp1 sys
client-cert.pem mysql test # 在mysql容器里建立的数据库
client-key.pem performance_schema test1 # 在mysql容器里建立的数据库
ib_buffer_pool private_key.pem
ib_logfile0 public_key.pem
root@liuxiaoweideAir data # pwd
/Users/liuxiaowei/mysql/data
image.png
假设我们将容器删除
root@liuxiaoweideAir data # docker rm -f mysql01
mysql01
root@liuxiaoweideAir data # docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
root@liuxiaoweideAir data # ls
auto.cnf ib_logfile0 public_key.pem
ca-key.pem ib_logfile1 server-cert.pem
ca.pem ibdata1 server-key.pem
client-cert.pem mysql sys
client-key.pem performance_schema test
ib_buffer_pool private_key.pem test1
发现,我们挂载到本地的数据卷依旧没有丢失,这就实现了容器数据持久化功能!
具名和匿名挂载
匿名挂载
- v 容器内路径
- P 随机映射端口
docker run -d -P --name nginx01 -v /etc/nginx nginx
# 查看所有的卷的信息
root@liuxiaoweideAir liuxiaowei # docker volume ls
DRIVER VOLUME NAME
local 3e8ab2696b7005a359de2bdaf5fc70a01881652fc0a789b3dcbac3d12b42a841 # 匿名
# 具名挂载nginx "juming-nginx"
root@liuxiaoweideAir liuxiaowei # docker run -d -P --name nginx02 -v juming-nginx:/ect/nginx nginx
df397dd0401dc1f2904671efaeca9749c7813fca846ba097f890666785094327
root@liuxiaoweideAir liuxiaowei # docker volume ls
DRIVER VOLUME NAME
local f40d828c9c069666740ff54f90c35e6061071cf684198ca5c2e9caab7871fdf0
local juming-nginx # 具名
local vsCodeServerVolume-liuxiaowei-recursing_leakey
# 查看一下这个具名卷
root@liuxiaoweideAir liuxiaowei # docker volume inspect juming-nginx
[
{
"CreatedAt": "2022-01-08T14:24:41Z",
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data", # 挂载点
"Name": "juming-nginx",
"Options": null,
"Scope": "local"
}
]
所有的docker容器内的卷,没有指定目录的情况下都是在 /var/lib/docker/volumes/xxxx/_data
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况下使用具名挂载
# 如何确定是具名挂载或者匿名挂载,还是指定路径挂载
-v 容器内路径 # 匿名挂载
-v 卷名:容器内路径 # 具名挂载
-v /宿主机路径:容器内路径 # 指定路径挂载
拓展:
# 通过 -v 容器内路径:ro rw 改变读写权限
ro --- readonly # 只读
rw --- readwrite # 可读可写
# 一旦设置了容器权限,容器对我们挂载出来的内容就有限定
docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -p --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
# ro 说明这个路径只能通过宿主机来操作,容器内部无法操作
- 上一篇:已经是第一篇了
- 下一篇: docker高级教学,一文学会compose使用,有多平台可视化管理工具
猜你喜欢
- 2025-04-01 失落的数学⑥——连分数(失落小站galgame)
- 2025-04-01 图形学算法-最小二乘的原理及运用
- 2025-04-01 牛顿分形——数值计算的艺术(牛顿数学方法)
- 2025-04-01 用二分法和牛顿迭代法求方程x3 – 3x – 1 = 0在x = 2附近的实根
- 2025-04-01 超越方程,牛顿迭代法,自由办公软件,开源软件,LibreOffice
- 2025-04-01 C语言实现非负整数X算术平方根(计算整数的非负整数次幂c语言)
- 2025-04-01 高三专题:牛顿迭代法求零点(牛顿迭代法x0取值)
- 2025-04-01 C|经典实例理解算法之顺推、逆推、迭代、递归思想
- 2025-04-01 正数开方运算的牛顿迭代法(用牛顿迭代法求1~n之间所有整数的算术平方根)
- 2025-04-01 牛顿迭代法,高中教材隐藏考点 #高中
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)