一、Docker数据持久化实现以及方案
(1)创建mysql数据库的container
docker run -d --name mysql01 -e MYSQL_ROOT_PASSWORD=jack123 mysql
docker ps
(2)查看volume
docker volume ls
(3)进入到mysql001容器中,并且登录
(4)从GitHub官网的MySQL镜像中可以看出,DockerFile中与持久化相关的字段 VOLUME /var/lib/mysql
进入到容器中持久化的目录
查看所有的Volume
docker volume ls
docker volume rm -f $(docker volume ls)
docker volume inspect 53832e4b6034b1ccdd1dbd23cac987dc7b6e780e0b47fad06294aeef54a674b2
//进入到指定的目录
cd /var/lib/docker/volumes/53832e4b6034b1ccdd1dbd23cac987dc7b6e780e0b47fad06294aeef54a674b2/_data
docker run -d --name mysql03 -v mysql03_volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jack123 mysql
docker volume ls
//删除容器后,volume数量没有减少
docker rm -f mysql01
docker volume ls
- 移除Volume,重新查看Volume
docker volume rm -f 53832e4b6034b1ccdd1dbd23cac987dc7b6e780e0b47fad06294aeef54a674b2
docker volume ls
判断Volume的数据是不是实时同步的
//查看volume列表
docker volume ls
//查看 具体的volume的信息
docker volume inspect mysql03_volume
查看挂载目录的数据,进入容器mysql03中,通过用户名和密码登录
- 在MySQL中新增数据库,并且展示数据库中数据
- 移除MySQL03镜像,并且通过Volume重新生成新的容器,并且验证MySQL容器是是否保存了之前的修改。
//移除对应的镜像
docker rm -f mysql03
//展示Volume目录
docker volume ls
// 根据之前的Volume重建信息
docker run -d --name test-mysql -v mysql03_volume:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=jack123 mysql
二、Bind Mounting
docker run -d 宿主机的任意目录:容器的任意目录 ——对应起来 开发者有效的利器
docker run -d --name tomcat01 -p 9090:8080 -v /tmp/gpmall:/usr/local/tomcat/webapps/gpmall tomcat
ls /tmp/gpmall/
docker exec -it tomcat01 bash
- 因为用的容器是Tomcat,所以可以通过外部去访问
在centos7*问该路径:curl localhost:9090/test/1.html
在win浏览器中通过ip访问
DockerFile中可以配置Window中的目录:容器中的任意目录
三、MySQL集群的搭建-PXC强一致性方案
- 去GitHub上去找到PXC