使用Windows,我已经成功通过提取了Jenkins图像
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.
答案 0 :(得分:2)
看看Jenkins Dockerfile from here:
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
答案 1 :(得分:2)
首先,使用-tid
看起来有些奇怪。既然您正在尝试以分离的方式运行它,也许最好是-d
,并使用-ti
例如通过外壳docker exec -ti jen1 bash
进行访问。
第二,docker localhost与主机localhost不同,因此,我将直接运行容器而不使用127.0.0.1。如果要使用它,可以指定--net=host
,使127.0.0.1的内容在docker内部和外部都是相同的。
第三,尝试首先通过端口8080访问初始管理员密码。
概括地说,
docker run -d -p 8097:8080 --name jen1 --rm jenkins
最后,解锁Jenkins设置管理员密码。您可以看一下启动日志:docker logs jen1
答案 2 :(得分:1)
命令所执行的操作是将主机端口8097与jenkins图像端口8097连接起来,但是您如何知道该图像暴露/使用了8097端口(扰流器:没有)。
此图像使用端口8080,因此您想将本地8097移植到该端口。
将命令更改为此:
accumulate = TRUE
只需使用此小修补程序测试您的命令,它就可以在本地工作。