无法侦听Jenkins容器内的端口80

31moq8wy  于 2023-03-17  发布在  Jenkins
关注(0)|答案(1)|浏览(161)

我有一个jenkins容器运行在端口8080上,用来做一些测试,在这个容器中,我有一个nginx容器运行在端口80上,我想测试http request.

但是在我的jenkins容器中,端口80没有被监听,我试图在通过docker-compose创建jenkins容器时暴露端口80,但是仍然不起作用,我不能在容器中使用firewalld和iptables。

有人有什么想法吗?

nuypyhwy

nuypyhwy1#

在使用非root用户和低端口时,我遇到了一个问题:
当Docker容器以非root用户身份运行时,在容器内运行的进程具有有限的权限,无法绑定到特权端口(即低于1024的端口),如端口80。但是,您仍然可以通过使用主机上的非特权端口并将其Map到容器内的端口80来公开容器上的端口80。
例如,如果要将容器的端口80公开给主机上的端口8080,可以使用以下命令:

docker run -p 8080:80 --user nonrootuser your-image

此命令将主机上的端口8080Map到容器内的端口80,并指定容器应以非root用户身份运行。
请注意,容器应用必须配置为侦听容器内的端口80,即使将通过主机上的非特权端口访问它。

相关问题