首页 > 解决方案 > 从 VM 访问 dockerized 服务 (Rundeck)

问题描述

您好,我有一个 Ubuntu VM(使用桥接适配器),我在其中运行一个 docker 容器,在该容器中,我使用挂载的 Volume 中的预构建 war 文件启动 Rundeck。当我第一次运行 war 时,它会创建它的文件和配置文件:

#loglevel.default is the default log level for jobs: 

ERROR,WARN,INFO,VERBOSE,DEBUG
loglevel.default=INFO
rdeck.base=/home/rundeck/rundeck

#rss.enabled if set to true enables RSS feeds that are public (non-authenticated)
rss.enabled=false
server.address=7d142a279564
grails.serverURL=http://7d142a279564:4440
dataSource.dbCreate = update
dataSource.url = jdbc:h2:file:/home/rundeck/rundeck/server/data/grailsdb;MVCC=true

# Pre Auth mode settings
rundeck.security.authorization.preauthenticated.enabled=false
rundeck.security.authorization.preauthenticated.attributeName=REMOTE_USER_GROUPS
rundeck.security.authorization.preauthenticated.delimiter=,
# Header from which to obtain user name
rundeck.security.authorization.preauthenticated.userNameHeader=X-Forwarded-Uuid
# Header from which to obtain list of roles
rundeck.security.authorization.preauthenticated.userRolesHeader=X-Forwarded-Roles
# Redirect to upstream logout url
rundeck.security.authorization.preauthenticated.redirectLogout=false
rundeck.security.authorization.preauthenticated.redirectUrl=/oauth2/sign_in

rundeck.log4j.config.file=/home/rundeck/rundeck/server/config/log4j.properties

如您所见,“server.address”和“grails.serverURL”将默认图像 ID 作为 IP。我无法使用此 url 访问容器,但我可以使用 localhost:4440 访问它。但是在登录 rundeck 后,它会将我重定向到“grails.serverURL”,如前所述,它给出“未找到服务器”。这就是我启动容器的方式:

sudo docker run -it -v /path/to/source:/path/to/dest -p 4440:4440  <imageID>

当我将“server.address”和“grails.serverURL”更改为 localhost 或 127.0.0.1 时,我根本无法访问容器。抱歉,如果在我刚开始 docker 之前已经回答了这个问题,并且已经在这里工作了几天,但找不到解决方案,谢谢!

标签: dockernetworkingipportrundeck

解决方案


我不是 rundeck 方面的专家,但是查看文档rundeck 图像有两个用于设置 URL 和地址的环境变量RUNDECK_GRAILS_URLRUNDECK_SERVER_ADDRESS

docker run -d -e RUNDECK_GRAILS_URL=http://127.0.0.1:4440 -e RUNDECK_SERVER_ADDRESS=0.0.0.0 -p 4440:4440 rundeck/rundeck.

现在您可以通过http://localhost:4440访问您的应用程序

如果您在远程服务器中运行 docker 容器,请更新您的RUNDECK_GRAILS_URLas RUNDECK_GRAILS_URL=http://<remote_server_ip>:4440.

现在您可以访问您的应用程序http://remote_server_ip:4440


推荐阅读