文章目录
Docker 容器数据卷
什么是Docker容器数据卷?
当我们在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们关闭docker容器时是会消失的,但是其中产生的部分内容我们是希望能够把它给保存起来另作用途的,Docker将应用与运行环境打包成容器发布,我们希望在运行过程钟产生的部分数据是可以持久化的的,而且容器之间我们希望能够实现数据共享。
通俗地来说,docker容器数据卷可以看成使我们生活中常用的u盘,它存在于一个或多个的容器中,由docker挂载到容器,但不属于联合文件系统,Docker不会在容器删除时删除其挂载的数据卷。
特点:
- 数据卷可以在容器之间共享或重用数据
- 数据卷中的更改可以直接生效
- 数据卷中的更改不会包含在镜像的更新中
- 数据卷的生命周期一直持续到没有容器使用它为止
容器的持久化和同步操作,容器间也是可以数据同步的!
使用容器数据卷
docker run -it -v (主机目录:容器内目录)
[root@VM-8-9-centos centos]# docker run -it -v /root/data/centos/home:/home centos /bin/bash
[root@334f4a042e05 /]# cd home
[root@334f4a042e05 home]# ls
[root@334f4a042e05 home]# touch newFile
[root@334f4a042e05 home]# ls
newFile
# 到主机中对应目录中查看
[root@VM-8-9-centos centos]# ls /root/data/centos/home
newFile
通过docker inspect 334f4a042e05
查看信息可以找到对应容器卷绑定信息
绑定同步之后,无论容器是否启动。对主机文件上的操作都会同步到容器中,同样容器中的文件操作也会同步到主机
优点:
绑定后,只需要在本地修改文件即可,容器内会自动同步
数据卷命令文档
Usage: docker volume COMMAND
Manage volumes
Commands:
create Create a volume
inspect Display detailed information on one or more volumes
ls List volumes
prune Remove all unused local volumes
rm Remove one or more volumes
实战:安装MySQL
# 1. 获取镜像
docker pull mysql:5.7
# 2. 运行mysql并且挂载数据卷 配置mysql密码
# 官方配置: docker