目录
容器数据卷
什么是容器数据卷?
- 将应用和环境打包成一个镜像!
- 数据?如果数据都在容器中,那么我们容器删除,数据就会丢失。需求:数据可以持久化
- MySQL,容器删了,删库跑。需求:MySQL数据可以存储在本地
- 容器之间可以有一个数据共享的技术,Docker容器中产生的数据,同步到本地。
- 这就是卷技术:目录的挂载,将我们容器内的目录,挂载到Linux上面。
- 总结一句话:容器的持久化和同步操作,容器间也是可以数据共享的!
使用数据卷
- 方式一:直接使用命令来挂载
docker run -it -v 主机目录:容器内目录
- 测试:将容器的home目录挂载到主机的home目录下的ceshi目录
docker run -it -v /home/ceshi:/home centos /bin/bash
- 进入容器后,进入 home 目录,新建一个文件
touch test.java ls 查看目录下的内容,能看到这个文件
- 这个时候切换到主机,或者再开一个终端查看主机的 home 目录下的 ceshi 目录
cd /home/ceshi ls 查看目录下的内容,发现 test.java 文件已经同步过来了
- 那再来测试,当我们关掉容器之后数据还能同步吗?
- 1、先 exit 退出容器
- 2、docker ps 查看容器是否真的停止了
- 3、主机上 vim /home/ceshi/test.java 修改文件
- 4、docker start 启动容器
- 5、容器内 cat /home/test.java 查看文件内容
- 能够发现文件内容跟之前修改的是一样的,表示文件已经同步过来了
- 这种方式的好处就是以后修改只需要在本地修改即可,容器内会自动同步.
- docker inspect查看挂载信息
MySQL 同步数据
- 获取 mysql 镜像 这里使用 5.7 版本
docker pull mysql:5.7
- 运行容器 挂载数据和配置文件,注意mysql启动需要配置密码
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
- 参数说明:
- -d 后台运行
- -p 端口映射
- -V 卷挂载
- -e 环境配置
- --name 容器名字
- 启动成功之后,可以使用navicat来连接一下mysql 或者 docker exec -it 进入容器 mysql -p 进入 mysql 控制台
- 创建一个数据库,再查看主机上映射的路径,就能查看到刚刚新创建的数据库文件
- 删除调这个容器 docker rm -f mysql01
- 再去主机查看路径 cd /home/mysql/data 下的文件
- 结果文件依然存在,没有丢失,这就实现了容器数据持久化的功能
(docker笔记):容器数据卷概念、MySQL 同步数据案例
猜你喜欢
转载自blog.csdn.net/baidu_41388533/article/details/108555192
今日推荐
周排行