Docker——挂载实现同步
Posted 玛丽莲茼蒿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker——挂载实现同步相关的知识,希望对你有一定的参考价值。
可以理解为VMware虚拟机和宿主机的“共享文件夹”
一、技术需求
先来考虑这样两个问题
问题(一):如果我们的mysql是用docker部署的。MySQL的数据存储在容器中,一旦我们把MySQL这个容器delete了,或者直接把整个docker删了。那么数据库的所有数据都丢了,这是不合理的。所以我们要求容器的数据能够存储在本地。
问题(二): 容易通常是以后台的方式运行的,假如我们用部署了一个nginx容器,每次修改Nginx配置文件都要进入容器,这是十分麻烦的。如果能在宿主机提供一个路径映射,直接在宿主机上修改,然后同步到Nginx容器就好了。
这个技术就是——卷技术/挂载
容器可以看成一个小型Linux虚拟机,那么它也有自己的文件系统,使用挂载技术之前,容器的数据是存储在自己的文件系统内的,所以容器一旦被删除,容器存储的数据也就没有了。而挂载技术就是将容器的文件路径挂载到宿主机的文件系统路径上
1)实现容器和宿主机之间数据的同步(在容器更改文件可以同步到宿主机,在宿主机更改文件也可以同步到容器)
2)各个容器之间也能共享数据
二、 实现挂载的两种方法
方式(一)run -v 命令挂载
docker run -it -v /home/test:/home centos /bin/bash
# “:”表示映射关系, 将宿主机的/home/test目录映射到容器centos的/home目录
容器启动起来以后,我们可以通过docker inspect 容器id命令查看是否挂载成功,如果出现“Mounts”属性则挂载成功。
测试:容器->宿主机
测试:宿主机->容器
为什么容器停掉了,还能实现从数据的同步呢?因为容器只是停掉了,但是没有被删除,别忘了stop是容器的一个状态。
方式(二)DockerFile
FROM 镜像名
VOLUME [" "," "]
三、MySQL实战测试
四、具名挂载和匿名挂载
没看
五、数据卷容器
没看
以上是关于Docker——挂载实现同步的主要内容,如果未能解决你的问题,请参考以下文章