我有一个Spring Boot应用程序,它在9000端口本地运行(不在容器中)。应用程序已将致动器配置为Prometheus测微计,整个统计信息可通过URL localhost获得:9000/致动器/Prometheus。
我使用以下命令在Docker容器中运行Prometheus:
docker run --name spring_boot_prometheus -p 9090:9090 -p 9000:9000 -v /Users/xyz/docker/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
普罗米修斯。yml公司
global:
scrape_interval: 5s
evaluation_interval: 5s
scrape_configs:
- job_name: 'users-app'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['localhost:9000']
命令docker ps
返回以下内容:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1568ec9e8353 prom/prometheus "/bin/prometheus --c…" 10 seconds ago Up 9 seconds 0.0.0.0:9000->9000/tcp, 0.0.0.0:9090->9090/tcp spring_boot_prometheus
我怎样才能解决这个问题?
感谢您的帮助!
对于prometheus docker容器,“localhost”表示本地。所以普罗米修斯试图在集装箱内连接到港口9000。这行不通。
此外,据我从您的帖子中了解,普罗米修斯容器中没有在端口9000上运行服务。
如果两个应用程序都位于docker容器中:
目标容器在docker安装中有自己的IP地址。通常为172.17。y、 z。
一个简单的docker网络是必要的,之后,您可以使用该网络运行两个容器:
$ docker network create mynet
$ docker run --name foo --net mynet img
$ docker run --name bar --net mynet img
在此处找到:论坛。docker。com公司
如果您的机器上运行的服务(9000)没有docker:
这不是一个标准用例
请阅读此处的设置方法。
您必须获取物理计算机的IP地址。例如192.168.0.10。这就是普罗米修斯的目标。
在普罗米修斯。yml,而不是localhost:9000,输入容器的特定名称:spring\u boot\u prometheus:9000。
Docker的最佳实践是使用容器名称而不是容器IP地址。
tl;如果在Docker容器中运行,一个RestController正确回答,另一个则不正确。 该服务有两个API 和。 它们都是通过docker compose运行的。 返回。 返回一个空的200响应。正如预期的那样。 应该返回一个200响应和一个每次调用API时都会增加的数字。可悲的是,事实并非如此。 在本地运行该服务可以提供预期的结果。 maven spotify插件用于从以下创建图像。 我
我可以对Docker API进行cUrl调用,但是如果我从容器(docker-comals)运行相同的脚本,我就无法到达任何API终结点。 我的请求如下: 原因可能是使用了localhost,但我现在还找不到解决方案。有什么建议吗? 编辑:下面是我正在使用的堆栈(Api平台)的简要摘要https://api-platform.com/).每个容器都连接到“api_默认”网桥网络: 基于php=Sy
问题内容: 我使用docker-compose和以下配置部署了标准的Jenkins Docker映像: 在阅读了许多SO问题之后,我测试了将Root添加到docker用户组,并验证Container中的用户是Root with 。 当我尝试使用“ Docker URL = unix:///var/run/docker.sock”在Jenkins UI中添加Docker访问时,出现错误消息“ **o
我有一个Django应用程序的简单代码构建项目,我想在docker容器中启动一个Postgres数据库进行测试。 命令是: 在我的本地机器上,一切都工作得很好,但在AWS CodeBuild中,我收到了错误: psql:错误:无法连接到服务器:无法连接到服务器:没有这样的文件或目录服务器是否在本地运行并接受Unix域套接字"/var/run/postgresql/. s. PGSQL.5432"上
我使用Docker compose和以下配置部署了标准Jenkins Docker映像: 在阅读了许多SO问题后,我测试了将Root添加到使用的docker用户组中,并验证了容器中的用户是使用的Root。 当我尝试在Jenkins UI中使用Docker URL=unix:///var/run/docker.sock添加Docker访问时,我会收到错误消息org.newsclub.net.unix
我有一个jupyterhub运行在一个容器与network_mode:主机由于一些要求。但是,在我的docker-comment文件中将network_mode设置为主机后,我无法使用主机ip: 8000从外部主机访问jupyterhub。 我的理解是 如果对容器使用主机网络模式,则该容器的网络堆栈不会与Docker主机隔离(容器共享主机的网络名称空间),并且容器不会获得分配的自己的IP地址。例如