1、实现mysql数据同步
docker images ---找到之前自己创建的镜像
docker run -it --name docker01 lalala/centos:1.0 ---这里的docker01作为后续操作的父容器,写镜像的时候需要带上版本号,不然就默认去下最新的镜像了。进入到了容器内部
ls -l ---可以看到挂载的目录 volume01 volume02
ctl +p+q退出
docker run -it --name docker02 --volumes-from docker01 lalala/centos:1.0 ---docker02继承docker01 ,通过--volumes-from绑定了docker01之后,数据会同步。进入到容器内部
ls -l ---可以看到挂载的目录 volume01 volume02
docker ps ---可以看到刚才启动的docker01和docker02
docker attach docker01的容器id ---进入这个容器
cd volume01 ---进入volume01
ls ---此时里面没有文件
touch abc.txt ---创建一个文件
ctl+p+q --退出容器
docker ps ---可以看到刚才启动的docker01和docker02
docker attach docker02的容器id ---进入这个容器
cd volume01 ---进入volume01
ls ---可以看到之前在docker01里touch的abc.txt文件已同步到了docker02中
docker run -it --name docker03 --volumes-from docker01 lalala/centos:1.0 ---将docker03也挂载在docker01上
ls ---可以看到volume01和volume02
cd volume01
ls ---也可以看到之前touch的文件,说明挂载成功,数据同步了
就算删除了docker01,docker02和docker03的数据也不会丢失
实现多个mysql的数据同步
docker run -d -p 3310:3306 -v /etc/mysql/conf.d -v var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7 ---之前的方式
docker run -d -p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 --volumes-from mysql01 mysql:5.7 ---今天的方式
总结:
数据卷容器的生命周期会一直持续到没有容器使用为止,但是一旦通过-v 持久化到了本地,本地的数据是不会删除的。所以比较重要的文件一般持续化到本地