我正在尝试运行 jenkins 容器。我使用了“docker run --restart always --name myjenkins -p 8080:80 jenkins”,但无法在浏览器的http://localhost:8080上访问 jenkins 。如果我使用 docker run --restart always --name myjenkins -p 8080:8080 jenkins,我可以访问 jenkins url。
提前致谢
JRi*_*dsz 10

每个应用程序必须使用不同的端口。
您可以直接使用其端口访问您的应用程序(当然如果可用):
应用程序可以使用任何端口,因为每个端口“都是不同的世界”
您无法使用其内部端口访问您的 docker 应用程序:
因为例如,8080的APP_B是唯一可见的内部APP_B容器。任何机构都无法访问此应用程序。
为了访问您的 docker 应用程序,您必须明确建立以下关系:
<->容器端口内的Linux 主机端口。
为此,您可以使用-p参数
在此之后,您可以使用其新端口访问您的 docker 应用程序:
使用 docker-compose 和 docker network 时的一个常见错误是当 docker 应用程序需要连接到另一个 docker 应用程序时使用 localhost 而不是 ip。如您所见,您需要使用ip 或域 + 外部端口而不是localhost:8080
在 docker run 中发布 8080:80 和 8080:8080 有什么区别?
您只需要研究 jenkins 使用的内部容器端口是什么并将其放入 docker run -p ...
小智 8
8080:80 是指在容器中您正在使用端口 80,并且您正在将该端口转发到主机的 8080 端口。因此,您在容器内的端口 80 上运行 Jenkins,在场景 2 中的任何位置,您都在容器内的端口 8080 上运行 Jenkins,并将其暴露在主机上的同一端口上。例如,如果我在容器中运行 mysql,我可能会使用 8080:3306,因此 mysql 将在端口 3306 上运行但暴露在主机的 8080 上,但如果将其选择为 8080:80 for mysql 它可能无法工作,因为根据代码在 mysql 中,它在端口 3306 而不是端口 80 上绑定自己。您的 Jenkins 情况也是如此。
| 归档时间: |
|
| 查看次数: |
7790 次 |
| 最近记录: |