java - Docker 卷不保存

标签 java tomcat docker hsqldb

在我的 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/

相关文章:

java - 如何重定向到部署在本地服务器上的应用程序中的 spring Controller 方法?

php - 从 docker 容器中的 laravel 应用程序连接到主机中的 Postgresql?

java - 以线程安全的方式缓存preparestatement?

java - 删除 Weka 中的实例

java - 使用 Docker 从命令行构建 Android 项目

jsf - 如何让 JSF 在 docker 容器中使用 spring-boot 应用程序?

javascript - 如何POST到外部IP?

java - Spring 安全 : Multiple HTTP Config not working

java - Atomikos、Tomcat、事务日志和不观察系统属性

eclipse - 构建路径 eclipse java j2ee