相关疑难解决方法(0)

从Docker容器内部,如何连接到本机的本地主机?

所以我在Docker容器中运行了一个Nginx,我在localhost上运行了一个mysql,我想从我的Nginx中连接到MySql.MySql在localhost上运行,而不是将端口暴露给外部世界,所以它绑定在localhost上,而不是绑定在机器的ip地址上.

有没有办法从这个docker容器中连接到这个MySql或localhost上的任何其他程序?

reverse-proxy nginx docker docker-networking

1176
推荐指数
24
解决办法
65万
查看次数

如何从docker容器中获取docker主机的IP地址

正如标题所说.我需要能够检索docker托管的IP地址和从主机到容器的端口映射,并在容器内部执行此操作.

ip docker

317
推荐指数
16
解决办法
30万
查看次数

如何从docker容器在主机上运行shell脚本?

如何从docker容器控制主机?

例如,如何执行复制到主机bash脚本?

docker

63
推荐指数
8
解决办法
7万
查看次数

从另一个容器访问docker容器

我基于两个不同的图像创建了两个docker容器.db和另一个用于webserver.两个容器都在我的mac osx上运行.

我可以从主机访问数据库容器,同样可以从主机访问网络服务器.

但是,我如何从网络服务器访问数据库连接?

我启动db容器的方式是

docker run --name oracle-db -p 1521:1521 -p 5501:5500 oracle/database:12.1.0.2-ee
Run Code Online (Sandbox Code Playgroud)

我开始使用容器作为

docker run --name oracle-wls -p 7001:7001 wls-image:latest
Run Code Online (Sandbox Code Playgroud)

我可以通过连接访问主机上的数据库

sqlplus scott/welcome1@//localhost:1521/ORCLCDB
Run Code Online (Sandbox Code Playgroud)

我可以在主机上访问wls

http://localhost:7001/console
Run Code Online (Sandbox Code Playgroud)

docker

31
推荐指数
6
解决办法
3万
查看次数

如何将容器上的localhost端口转发到主机上的localhost?

我的主机上有一个守护进程在某个端口上运行(即8008),我的代码通常通过联系localhost:8008与守护进程交互.

我现在已经将我的代码容器化了,但还没有守护进程.如何将我的容器上的localhost:8008转发到运行容器的主机上的localhost:8008(以及守护进程).

以下是netstat -tlnp我的主人.我希望容器在主机上将localhost:2009转发到localhost:2009

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name            
tcp        0      0 127.0.0.1:2009          0.0.0.0:*               LISTEN      22547/ssh       
tcp6       0      0 :::22                   :::*                    LISTEN      -               
tcp6       0      0 ::1:2009                :::*                    LISTEN      22547/ssh            
Run Code Online (Sandbox Code Playgroud)

linux routing docker

26
推荐指数
4
解决办法
2万
查看次数

Docker从容器访问本地主机端口

我有一个运行 Nuxt.js (Vue.js) 应用程序的容器,定义如下docker_composes.yml

version: '3'
services:
  vue:
    build: .
    image: registry.gitlab.com/something/app:${TAG}
    environment:
      - apiPath="http://localhost:5000/"
      - filePath="http://localhost:3000/"
    ports:
     - "${EXPOSED_PORT:-80}:${NUXT_PORT:-3000}"
    restart: always
Run Code Online (Sandbox Code Playgroud)

该应用程序是一个前端。我在本地主机上运行后端,在端口上5000。当容器化应用程序尝试连接到http://localhost:5000/它时失败。

我有哪些选择?我不想将后端放入docker_composes.yml并通过链接连接它们。如果这是唯一的选择,我会的。

docker docker-compose

24
推荐指数
4
解决办法
4万
查看次数

什么是linux相当于"docker.for.mac.host.internal"

在Mac和Windows上,可以在容器内使用docker.for.mac.host.internal(替换docker.for.mac.localhost)和docker.for.win.host.internal(替换docker.for.win.localhost).

是否有一个Linux将开箱即用而不传递env变量.

docker docker-for-windows docker-for-mac docker-desktop

22
推荐指数
10
解决办法
2万
查看次数

如何使用nginx docker容器访问localhost上的服务器?

我正在尝试使用dockerized版本的nginx作为我的节点(ExpressJS)应用程序的代理服务器.没有任何配置到nginx和发布容器的端口80,我能够看到默认的nginx登陆页面.所以我知道这很有用.

现在我可以挂载包含配置的启用站点的目录proxy_pass localhost:3000.我的节点应用程序在本地运行(不在任何Docker容器中),我可以通过端口3000(即localhost:3000)访问它.但是,我假设在nginx容器运行,映射到端口80,并代理我的localhost:3000,我将能够看到我非常简单的(hello world)应用程序.相反,我收到502.

我需要把东西传递给码头工人吗?这可能是nginx配置错误吗?这是我的nginx配置:

server {
  listen 0.0.0.0:80;
  server_name localhost;

  location / {
    proxy_pass http://localhost:3000;
  }
}
Run Code Online (Sandbox Code Playgroud)

我尝试过使用这个问题,但似乎没有帮助.这是除非我做错了.

nginx node.js docker

16
推荐指数
3
解决办法
1万
查看次数

Prometheus(在 Docker 容器中)无法在主机上抓取目标

Prometheus 在docker容器(版本 18.09.2,构建 6247962docker-compose.xml如下)中运行,并且刮取目标是localhost:8000由 Python 3 脚本创建的。

为失败的抓取目标 ( localhost:9090/targets)获得的错误是

获取http://127.0.0.1:8000/metrics:拨号 tcp 127.0.0.1:8000:getsockopt:连接被拒绝

问题:为什么 docker 容器中的 Prometheus 无法抓取在主机(Mac OS X)上运行的目标?我们如何让在 docker 容器中运行的 Prometheus 能够抓取在主机上运行的目标?

失败的尝试:尝试替换docker-compose.yml

networks: 
  - back-tier
  - front-tier
Run Code Online (Sandbox Code Playgroud)

network_mode: "host"
Run Code Online (Sandbox Code Playgroud)

但随后我们无法访问 Prometheus 管理页面localhost:9090

无法从类似问题中找到解决方案

docker-compose.yml

version: '3.3'

networks:
  front-tier:
  back-tier:

services:

  prometheus:
    image: prom/prometheus:v2.1.0
    volumes:
      - ./prometheus/prometheus:/etc/prometheus/
      - ./prometheus/prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose prometheus

13
推荐指数
3
解决办法
9435
查看次数

host.docker.internal 主机上正在运行什么?

我只是好奇,host.docker.internal 主机上正在运行什么?

该服务将包从 docker 容器路由到主机网络上的服务。

但它到底是什么?

我发现这不是网关。

networking docker

13
推荐指数
1
解决办法
2万
查看次数