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实战测试

 22、实战:MySQL同步数据_哔哩哔哩_bilibili22、实战:MySQL同步数据是【狂神说Java】Docker最新超详细版教程通俗易懂的第22集视频,该合集共计40集,视频收藏或关注UP主,及时了解更多相关视频内容。https://www.bilibili.com/video/BV1og4y1q7M4?p=22&vd_source=4e5addbe07f6c2c1f970580da6513dd6

四、具名挂载和匿名挂载

没看

五、数据卷容器 

没看

以上是关于Docker——挂载实现同步的主要内容,如果未能解决你的问题,请参考以下文章

docker的复制和挂载

Docker Review - 使用docker volume数据卷实现容器内的数据与宿主机同步

解决Docker容器和宿主机时间同步问题

docker 挂载文件不同步问题记录

docker 挂载文件不同步问题记录

如何解决Docker容器和宿主机时间同步问题