gpt4 book ai didi

Docker 端口绑定(bind)未按预期工作

转载 作者:行者123 更新时间:2023-12-02 18:07:52 26 4
gpt4 key购买 nike

在绑定(bind)到主机端口 9090 的容器中运行 Jenkins 镜像

sudo docker run -itd -p 9090:8080 -p 50000:50000 --name=myjenkins -t jenkins-custom /bin/bash

运行 $docker port myjenkins 的输出
50000/tcp -> 0.0.0.0:50000
8080/tcp -> 0.0.0.0:9090

我也可以从主机的角度看到绑定(bind) ps -Af | grep proxy
root     15314 15194  0 17:52 ?        00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 50000 -container-ip 172.17.0.2 -container-port 50000
root 15325 15194 0 17:52 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9090 -container-ip 172.17.0.2 -container-port 8080

启动 jenkins 服务器后,我尝试使用主机 ip 和转发端口 (9090) 连接到容器。

我是 Docker 的新手,所以可能错过了一些东西,但是会很感激建议

更新:包括 dockerfile
From local-artifiactory/jenkinsci/jenkins:2.9
ENV java_opts="-Xmx8192m"

最佳答案

这不是这个特定问题的答案。这是“端口映射不起作用”的可能答案
我已经被这个捕获了两次。
从命令行创建容器时,镜像名称必须放在最后
这个语法:

docker run --name MyContainer MyImage -p 8080:80
将创建容器 MyContainer来自 MyImage没有问题
但是 -p 8080:80 部分将被静默忽略,您的端口映射将不起作用
此语法将起作用 - 您将看到完全相同的结果,只是端口映射实际上会起作用。
docker run --name MyContainer -p 8080:80 MyImage
同样的:
docker run MyImage --name MyContainer
这将从 MyImage 创建一个容器,但不会给它明确的名称,它会分配一个随机名称
我希望这可以节省一些时间。

关于Docker 端口绑定(bind)未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44012346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com