gpt4 book ai didi

docker - 无法使用HTTP请求从单独的容器访问Jenkins容器

转载 作者:行者123 更新时间:2023-12-02 20:59:42 30 4
gpt4 key购买 nike

我有一个服务some-service,它需要向Jenkins服务发出http请求-两者都在单独的Docker容器中运行。我的问题是,每当我发出请求时,我的连接都会被拒绝。
some-serviceJenkins都在主机名分别为30304040的端口some-servicejenkins上运行。

我可以使用以下命令在Jenkins之外的本地计算机上成功命中some-service:

curl -v http://localhost:4040/

但是,我无法使用以下方法从 Jenkins内部访问 some-service:
curl -v http://jenkins:4040/

我正在使用这个简单的 Docker-compose.yaml文件来创建 some-serviceJenkins:
version: '3'

services:

some-service:
container_name: service
image: service:latest
hostname: some-service
build:
context: service/
dockerfile: Dockerfile
environment:
GET_HOSTS_FROM: dns
networks:
- eg-net
ports:
- 3030:3030
depends_on:
- jenkins
links:
- jenkins
labels:
kompose.service.type: LoadBalancer

jenkins:
container_name: jenkins
image: jenkinsci/blueocean
restart: always
hostname: jenkins
networks:
- eg-net
ports:
- 4040:8080
volumes:
- ./jenkins-data:/var/jenkins_home

networks:
eg-net:
driver: bridge

最佳答案

您无法从服务内部访问http://jenkins:4040/,因为端口4040仅向主机公开了。这就是为什么主机上的curl -v http://localhost:4040/起作用的原因。

如果要从另一个容器访问jenkins,则必须使用端口8080,因为该端口在网络中是公开的。因此,您服务中的curl -v http://jenkins:8080/将起作用。

希望这可以澄清它。

关于docker - 无法使用HTTP请求从单独的容器访问Jenkins容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61087647/

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