在 Docker 中使用持久卷

Using Persistent Volumes in Docker

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

/home/my_user/my_project/

它基于 Ubuntu OS 图片和 运行ning 在我的 Mac 上。当我运行这个容器时,容器不断更新my_project文件夹下的一个文件夹。现在当我停止并删除这个容器时,它就被删除了,当我启动容器的新实例时,这个过程必须重新开始,即容器开始写入 my_project 文件夹,但是它已经写入的旧文件完全丢失。

如何让容器写入的数据在容器删除/重启后仍然存在?

Docker 持久卷是我所需要的,但是如何在我的 Mac 上安装本地文件夹以便写入和持久保存数据?这个容器可以 运行 在 Windows 机器上,那么我怎样才能在不同的 OS 上创建一个持久卷?

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

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

volumes 和 bind mounts 之间也有区别,我解释过