如何从主机访问安装在 CentOS Docker 容器上的 CodeReady 容器的 Web 控制台?

如何从主机访问安装在 CentOS Docker 容器上的 CodeReady 容器的 Web 控制台?

我有这样的场景:

  • 运行 Debian 并运行 docker 容器的主机。
  • 一个 CentOS docker 容器,具有CodeReady 容器 (CRC)安装在自己身上。 CRC 通过命令行在容器上工作,没有任何问题。

我想从主机访问可运行的 CRC Web 控制台https://console-openshift-console.apps-crc.testing(在文件中的特定 IP 上hosts)。

我找到了这个远程访问 CRC 的 RedHat 指南。但如何将其应用到 docker 容器逻辑中呢?最重要的是,我真的需要它吗?


我必须做以下事情更改为haproxy.conf

global
log 127.0.0.1 local0
debug

defaults
log global
mode http
timeout connect 5000
timeout check 5000
timeout client 30000
timeout server 30000

frontend apps
bind CONTAINER_IP:80
bind CONTAINER_IP:443
option tcplog
mode tcp
default_backend apps

backend apps
mode tcp
balance roundrobin
option ssl-hello-chk
server webserver1 CRC_IP:6443 check

frontend api
bind CONTAINER_IP:6443
option tcplog
mode tcp
default_backend api

backend api
mode tcp
balance roundrobin
option ssl-hello-chk
server webserver1 CRC_IP:6443 check

启用转发对于容器:

$ sysctl net.ipv4.conf.all.forwarding=1
$ sudo iptables -P FORWARD ACCEPT

https://console-openshift-console.apps-crc.testing我可以从主机成功调用 url !但我收到此错误:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "forbidden: User \"system:anonymous\" cannot get path \"/\"",
  "reason": "Forbidden",
  "details": {
    
  },
  "code": 403
}

不管怎样,网络部分已经解决了。现在我不知道为什么会出现这个错误!

答案1

问题出在浏览器端。选择“高级”并查看证书,然后接受风险。您将被引导至 Web 控制台登录页面,需要提供用户名和密码

相关内容