0

如果我将卷 /var/lib/mysql 文件夹映射到本地文件夹,则应用程序将无法正确运行,并且当我尝试访问 http://myserver:81/ScadaBR 时会收到 HTTP 404

当我在浏览到根目录时获得启动页面时,tomcat 正在运行(http://myserver:81 给了我欢迎它正在运行的屏幕)。此外,如果我删除卷映射,一切都会完美运行,我可以创建一个屏幕并观察我的 PLC 值的变化。但是,如果没有持久性数据库,它就毫无用处,因为我每次都必须重新创建屏幕。如果按照建议运行 Docker,重启后不会有任何问题。

docker run -it -e DOCKER_HOST_IP= docker-machine ip-p 81:8080 scadalts/scadalts /root/start.sh

这对我来说几乎没用,并且尝试映射 /var/lib/mysql 中的任何目录都会破坏事情。我试图只映射 /var/lib/mysql/scadalts 文件夹,但这也不起作用,因为数据库/模式没有持久化。

那么,说了这么多,有没有办法在 Docker 中实际持久化屏幕?

我试图搜索文档,但没有找到任何解释如何实际使用 docker 的内容,而不仅仅是让它暂时运行。任何帮助将非常感激。

PS。这些是我到目前为止尝试过的方法:

docker run -d -p 8081:8080 scadalts/scadalts /root/start.sh

  • 有效但不持久

docker run -d -p 8081:8080 -v /mnt/ssd/openplc/mysql:/var/lib/mysql scadalts/scadalts /root/start.sh

  • 由于 /var/lib/mysql 文件夹中缺少文件而无法启动 mysql,因为如果我从本地映射它会开始为空,并且它需要安装中的内容。

docker run -d -p 8081:8080 -v /mnt/ssd/openplc/database:/var/lib/mysql/scadalts scadalts/scadalts /root/start.sh

  • 第一次尝试成功运行,但后续启动失败,因为它忘记了架构但文件夹/数据已经存在。
4

0 回答 0