尝试通过浏览器在我的机器上查看 docker 容器 运行

Trying to view docker container running on my machine from browser

我是运行两个容器。一个是Keycloak(用于访问管理/授权/认证),另一个是用于存储Keycloak信息的mariadb数据库。

我的问题是我无法在浏览器中访问 Keycloaks 管理面板,尽管后台有容器 运行(通常由 运行 localhost:8080/auth 完成)。

有人可以指出我做错了什么的正确方向吗?

我的 Dockerfile:

FROM registry.access.redhat.com/ubi8-minimal

ENV KEYCLOAK_VERSION 12.0.4
ENV JDBC_POSTGRES_VERSION 42.2.5
ENV JDBC_MYSQL_VERSION 8.0.22
ENV JDBC_MARIADB_VERSION 2.5.4
ENV JDBC_MSSQL_VERSION 8.2.2.jre11

ENV LAUNCH_JBOSS_IN_BACKGROUND 1
ENV PROXY_ADDRESS_FORWARDING false
ENV JBOSS_HOME /opt/jboss/keycloak
ENV LANG en_US.UTF-8

ARG GIT_REPO
ARG GIT_BRANCH
ARG KEYCLOAK_DIST=https://github.com/keycloak/keycloak/releases/download/$KEYCLOAK_VERSION/keycloak-$KEYCLOAK_VERSION.tar.gz

USER root

RUN microdnf update -y && microdnf install -y glibc-langpack-en gzip hostname java-11-openjdk-headless openssl tar which && microdnf clean all

ADD tools /opt/jboss/tools
RUN /opt/jboss/tools/build-keycloak.sh

USER 1000

EXPOSE 8080
EXPOSE 8443

ENTRYPOINT [ "/opt/jboss/tools/docker-entrypoint.sh" ]

CMD ["-b", "0.0.0.0"]

我的docker-撰写:

version: '3'

volumes:
  mysql_data:
    driver: local

services:
  mariadb:
    image: mariadb
    volumes:
      - mysql_data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: keycloak
      MYSQL_USER: keycloak
      MYSQL_PASSWORD: password
    # Copy-pasted from https://github.com/docker-library/mariadb/issues/94
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "--silent"]
  keycloak:
    image: quay.io/keycloak/keycloak:latest
    environment:
      DB_VENDOR: mariadb
      DB_ADDR: mariadb
      DB_DATABASE: keycloak
      DB_USER: keycloak
      DB_PASSWORD: password
      KEYCLOAK_USER: admin
      KEYCLOAK_PASSWORD: Pa55w0rd
      JGROUPS_DISCOVERY_PROTOCOL: JDBC_PING
    depends_on:
      - mariadb

运行 docker network inspect c7f53468ca9c 揭示:

[
    {
        "Name": "keycloak_default",
        "Id": "c7f53468ca9c20aa22708586c5abad65641f39bf1e2059c56494b27a5d54fb41",
        "Created": "2021-03-12T17:26:50.535785Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.19.0.0/16",
                    "Gateway": "172.19.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "52ae9c541f766e3ec3c7241bafd8f8808c250f89f5fb8934d54979fcd9951fb0": {
                "Name": "keycloak_keycloak_1",
                "EndpointID": "a95f54afa6c6d59852aa52aa7b15e9a183a69b4645e90c45e9eda8965a44a64e",
                "MacAddress": "02:42:ac:13:00:03",
                "IPv4Address": "172.19.0.3/16",
                "IPv6Address": ""
            },
            "6c48cb17cf84038cf35ec635b9651d3ddbac55eefa10ff9a89ed819a10201187": {
                "Name": "keycloak_mariadb_1",
                "EndpointID": "74f7f51d71d53fa7f98ba42e0726f7bd7acd3bd89b78b5c9d0b5a6ad7a837796",
                "MacAddress": "02:42:ac:13:00:02",
                "IPv4Address": "172.19.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "default",
            "com.docker.compose.project": "keycloak",
            "com.docker.compose.version": "1.28.5"
        }
    }
]

我在浏览器中尝试了以下地址,但无济于事:

localhost:8080/auth
localhost:8443/auth
localhost:9990/auth

127.0.0.1:8080/auth 
127.0.0.1:8443/auth 
127.0.0.1:9990/auth 

172.19.0.0:8080/auth 
172.19.0.0:8443/auth 
172.19.0.0:9990/auth 

172.19.0.1:8080/auth
172.19.0.1:8443/auth
172.19.0.1:9990/auth

172.19.0.3:8080/auth
172.19.0.3:8443/auth
172.19.0.3:9990/auth

您还没有发布任何端口。

更新 docker-compose 文件中的 keycloak 服务。

keycloak:
    image: quay.io/keycloak/keycloak:latest
    ports:
      - 8080:8080        ### THIS IS MISSING
    environment:
      DB_VENDOR: mariadb
      .
      .