Docker笔记(二)容器数据卷进阶
容器数据卷
什么是容器数据卷
数据存在容器,容器删除,数据就会丢失,如何做到数据持久化?
目的:就是数据的持久化,完全独立与容器的生命周期,因此Docker不会在容器删除时删除其挂载的数据卷。
特点:
1:数据卷可以在容器之间共享或重用数据。
2:数据卷中的更改可以直接生效。
3:数据卷中的更改不会包含在镜像的更新中。
4:数据卷的生命周期一直持续到没有容器使用它为止。
具名挂载与匿名挂载
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的|具名挂载
#如何确定是具名挂载还是匿名挂载,还是指定路径挂载!
-v容器内路径
#匿名挂载
-v卷名:容器内路径#具名挂载
-v/宿主机路径:容器内路径#指定路径挂载!
拓展︰
#通过-v容器内路径:ro rw改变读写权限
ro readonly #只读
rw readwrite#可读可写
#一旦这个了设置了容器权限,容器对裁们挂载出来的内容就有限定了!
docker run -d -p --name nginx02 -v juming-nginx : /etc/nginx:ro nginxdocker run -d - --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
# ro只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作!
用法
方式一 :使用命令挂载
docker run -it -v /宿主机绝对路径目录:/容器内目录
# 示例
docker run -it -v /home/ceshi:/home centos /bin/bash
# 通过docker inspect [容器id] 查看容器详细配置
"Mounts": [
{
"Type": "bind",
"Source": "/home/ceshi", # 主机内地址
"Destination": "/home", # 容器内地址
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
]
方式二 :使用Dockerfile挂载
Dockerfile 用来构建docker镜像的构建文件
# 指令大写
FROM centos
VOLUME ["volume01","volume02"]
CMD echo "----end----"
CMD /bin/bash
数据卷容器
实现容器建数据共享
# 启动docker01,并创建test.md文件
# docker run -it --name docker01 test/centos:1.0
[root@node1 docker-test-volume]# docker run -it --name docker01 test/centos:1.0
[root@a45217dfa119 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02
[root@a45217dfa119 /]# cd volume01
[root@a45217dfa119 volume01]# touch test.md
# 启动docker02,通过--volumes-from继承docker01配置
# docker run -it --name docker02 --volumes-from docker01 test/centos:1.0
# 查看volume01下也存在test.md
[root@node1 ~]# docker run -it --name docker02 --volumes-from docker01 test/centos:1.0
[root@1611bfa5128f /]# cd volume01
[root@1611bfa5128f volume01]# ls
test.md
实战
一、安装mysql
# 1.0 获取mysql镜像
docker pull mysql:5.7
# 2.0 启动mysql
# -d 后台运行 -p 端口映射 -v数据卷挂载 -e 环境配置 --name容器名
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/confg.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7
本篇内容是参考网络教程学习过程中的笔记
开发工作着,生活快乐着,留下总结,相互交流,共同进步
开发工作着,生活快乐着,留下总结,相互交流,共同进步