Java Docker重新启动-保留环境变量
我们有一个运行Java服务器的Docker容器。一些环境变量通过run命令传递给包含的(例如,Java Docker重新启动-保留环境变量,java,docker,Java,Docker,我们有一个运行Java服务器的Docker容器。一些环境变量通过run命令传递给包含的(例如,docker run-e INSTANCE\u NAME=$INSTANCE\u ID[…])) 如果服务器可以访问INSTANCE_NAME环境变量,那么这将按预期工作。但是,如果停止容器并重新启动它,环境变量将丢失,Java服务器将无法找到实例名称。更奇怪的是,如果我们使用docker exec-it ID bash进入容器,则环境变量设置正确。因此,在重新启动容器时,环境变量的设置似乎与第一次运行
docker run-e INSTANCE\u NAME=$INSTANCE\u ID[…])
)
如果服务器可以访问INSTANCE_NAME环境变量,那么这将按预期工作。但是,如果停止容器并重新启动它,环境变量将丢失,Java服务器将无法找到实例名称。更奇怪的是,如果我们使用docker exec-it ID bash
进入容器,则环境变量设置正确。因此,在重新启动容器时,环境变量的设置似乎与第一次运行时使用docker run
时的设置不同
有人知道这样的事吗?在我们这方面,这仅仅是一个糟糕的操作吗?尽管在这篇文章中,我意外地更改了启动脚本,以便在重新启动后,Java程序在sudo下运行,具有一组不同的环境变量…我没有看到这一点。最可能的错误是在脚本或java程序中。您可以用“env”命令替换“java”程序,并向问题提供信息。