在Docker中使用持久卷

我有一个在我的Mac上运行的Docker容器。 这个Docker容器有一个主文件夹,如:

/home/my_user/my_project/ 

它基于Ubuntu操作系统映像,并在我的Mac上运行。 当我运行这个容器时,容器不断更新my_project文件夹下的一个文件夹。 现在,当我停下来删除这个容器时,它只会被删除,当我启动一个新的容器实例时,这个过程必须重新开始,也就是容器开始写入my_project文件夹,但是它的旧文件已经写完了就是输了。

即使在容器删除/重新启动之后,如何使容器写入的数据保持不变?

docker持久卷是我所理解的,我需要,但我怎么能在我的Mac上挂载本地文件夹,使数据被写入并持久? 这个容器可以运行在Windows机器上,那么如何在不同的操作系统上创build一个持久化的卷?

你需要用-v标志启动你的容器。 因此,如果/home/my_user/my_project容器中的/home/my_user/my_project目录挂载到/srv/my_app/data主机上,则需要按以下方式使用它:

 docker run -v /srv/my_app/data:/home/my_user/my_project IMAGE_NAME 

卷和绑定坐标之间也有区别,我在这里解释