在 OpenShift Origin 上运行 WildFly Docker 镜像

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前,正在 星球 内带小伙伴们做第一个项目:全栈前后端分离博客项目,采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 204 小节,累计 32w+ 字,讲解图:1416 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 870+ 小伙伴加入,欢迎点击围观

进入新的一周。最近我有很多旅行,而且不会很快停止。但我有时间试用 OpenShift Origin 并在我的 Windows 环境中运行它。几天前有一篇入门级博客文章如何设置所有内容。现在是时候在其上运行一个普通的 Docker 镜像了。

先决条件

启动并运行您的 Origin 安装 。并确保在本地安装 OpenShift 二进制文件。在我发帖几天后,OpenShift 团队在一个单独的、开发人员友好且美观的网站上发布了多合一虚拟机。所以,你只需要记住这个地址:http: //www.openshift.org/vm/

启动您的 OpenShift 环境

这是一个单一的 vagrant up 命令。如果成功,您应该能够通过浏览器访问本地管理控制台 http://localhost:8443/ 并从命令行使用客户端工具登录:


 oc login http://localhost:8443

使用 admin/admin 作为用户名/密码。

创建项目并运行 WildFly

首先要做的是创建一个新的 OpenShift 项目。我们想将其与默认值分开一点。最后,将其视为一个名称空间,我们可以在其中稍微玩一下:


 oc login http://localhost:8443

OpenShift 不直接公开 Docker 守护进程。因此,您需要使用 oc 命令行工具来运行图像。有一些(不受支持的)JBoss 社区图像可用并列在 http://www.jboss.org/docker/ 上。我有兴趣为此测试运行最新的 WildFly 9。


 oc login http://localhost:8443

如果您查看 Web 控制台,您会看到部署正在运行并且 Docker 映像已被拉取。


根据您的连接,这可能需要一些时间。但是当它完成时,您会看到一个绿色的条,上面写着“正在运行”并且还显示了一个 IP 地址。让我们看看,是否一切顺利,WildFly 实例是否启动并运行。我们确实需要查看 pod 的日志。让我们列出它们:


 oc login http://localhost:8443

并查看日志:


 oc login http://localhost:8443

请注意,pod 名称在您的环境中很可能会有所不同。该命令应按照您习惯的方式输出 WildFly 日志。现在,我们有一个正在运行的 pod。现在我们需要通过服务向外部世界公开此 pod 的端口。但首先我们需要决定,我们想通过哪个域名公开它。使用以下条目添加/更改主机文件:


 oc login http://localhost:8443

并执行以下命令为服务添加外部路由:


 oc login http://localhost:8443

浏览到控制台中的服务选项卡,查看是否为该服务创建了路由。

现在唯一要做的就是在 VirtualBox 控制台中更改端口转发规则。将端口 80 从主机添加到来宾。

故障排除

如果您运行的不是 all-in-on-vm 以外的任何东西,例如 fabric8 vagrant image ,您将需要更改 OpenShift 中的安全设置 。 SSH 进入实例,通过 oc 命令行登录并编辑安全设置:


 oc login http://localhost:8443

将 runAsUser.Type 策略更改为 RunAsAny。如果 Dockerfile 中没有指定 USER,这允许图像作为根 UID 运行。