docker - Docker 端口未公开
问题描述
使用 Windows,我已经通过
docker pull jenkins
我正在通过以下命令运行一个新容器,它似乎可以正常启动容器。但是当我尝试在浏览器上访问 Jenkins 页面时,我只会收到以下错误消息。我期待看到 Jenkins 主登录页面。当我尝试其他图像(如 Redis、Couchbase 和 JBoss/Wildfly)时也出现同样的问题。我究竟做错了什么?Docker 新手和以下教程,其中描述了以下命令来公开端口。对于此处给出的一些答案+文档也是如此。请指教。谢谢。
docker run -tid -p 127.0.0.1:8097:8097 --name jen1 --rm jenkins
在浏览器中,只是得到一个正常的“问题加载页面错误”。
The site could be temporarily unavailable or too busy.
解决方案
从这里看一下 Jenkins Dockerfile :
FROM openjdk:8-jdk
RUN apt-get update && apt-get install -y git curl && rm -rf /var/lib/apt/lists/*
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
ARG http_port=8080
ARG agent_port=50000
.....
.....
# for main web interface:
EXPOSE ${http_port}
# will be used by attached slave agents:
EXPOSE ${agent_port}
如您所见,端口 8080 被暴露,而不是 8097。将您的命令更改为
docker run -tid -p 8097:8080 --name jen1 --rm jenkins
推荐阅读
- sql - 如何使用 ROLLUP 从带有总计的 SQL 汇总行中消除空白
- javascript - Javascript 数组,由一组变量构建
- angular - 失败:parentContexts.onChildOutletCreated 不是函数
- git - Bitbucket 合并点击确认模式
- python - python CSV模块与熊猫
- oracle - 每月重置 Oracle 序列的最佳策略
- ios - 点击集合视图单元格以向地图添加注释
- javascript - 在 Angular 的 node_modules 中导入 JS 文件
- javascript - 从 OnClick 在 React Dialog 上传递参数
- svg - 在 Canvas 上绘制一个带有 gradientUnits="objectBoundingBox" 的 SVG 矩形,而不使用内置的变换函数或更改色标?