在我的 Dockerfile 中,我用这一行来创建数据卷
VOLUME /Infrared360SA
我看到这个卷是通过运行以下命令创建的:
zack@zack-Inspiron-5748:~/Docker$ sudo docker volume inspect Infrared360SA
[
{
"Driver": "local",
"Labels": null,
"Mountpoint": "/var/lib/docker/volumes/Infrared360SA/_data",
"Name": "Infrared360SA",
"Options": {},
"Scope": "local"
}
]
但是,当我通过 docker run
运行我的应用程序时,我没有看到数据保存在该目录下。我尝试运行的应用程序是一个使用 hsql 数据库的嵌入式 tomcat 网络应用程序。我可以通过 java 启动命令从命令行毫无问题地运行这个 Web 应用程序,并看到数据库更改持续到 hsql 但是当我在 Docker 容器中运行相同的命令时数据不持久。
如何让数据持久保存在我定义的卷内?
最佳答案
如果您使用 docker volume create
正确创建了 docker volume。
您应该在 docker run 命令中将 docker-volume 与 dockerfile 卷绑定(bind)。 这样:
sudo docker run -v Infrared360SA:/Infrared360SA avada/ir360sa-5.8.2.0 avada/ir360sa-5.8.2.0
关于java - Docker 卷不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43332429/