1、容器数据卷
docker :将应用和环境打包成一个镜像,运行就成了容器
数据不应该放在容器中,如果数据放在容器中,删除了容器,数据也会丢失------所以需要将数据持久化,比如将mysql的数据存储在本地或者其他地方
所以需要一种技术:容器之间数据共享:在docker容器中产生的数据同步到本地,这样即使将容器删了,数据也不会丢失
卷技术:将容器内的目录,挂在到虚拟机上或者linux上面
方式一:使用命令挂载 -v
docker run -it -v /home/ceshi:/home centos /bin/bash 将容器中的home目录挂载到linux的/home/ceshi 目录下
再开一个窗口在容器外 docker inspect 容器id 查看有没有挂载成功
"Mounts": [
{
"Type": "bind",
"Source": "/home/ceshi",
"Destination": "/home",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
}
---source内就是主机内的地址,是真实服务器上的
---Destination是docker容器内的地址
---如果没有Mounts信息就说明挂载失败了
确认挂载成功之后,可以试试在容器内部的/home目录下touch一个新的文件
然后到容器外部也就是服务器的/home/ceshi中查看在容器内新创建的文件是不是同步过来了,同步了就是对的
另外反向操作也可以,比如exit退出容器之后,在容器外的/home/ceshi目录下修改了文件,
用docker ps -a查找到之前退出的那个容器id
docker start 容器id进行启动
cd /home目录下查看会发现在容器外的改动也同步到了容器内部