尝试通过浏览器在我的机器上查看 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
.
.
我是运行两个容器。一个是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
.
.