相关疑难解决方法(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-Postgres和pgAdmin 4:连接被拒绝

与docker的新手,我正在尝试通过pgAdmin容器将localhost连接到postgres容器。

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                         NAMES
0b00555238ba        dpage/pgadmin4      "/entrypoint.sh"         43 minutes ago      Up 43 minutes       0.0.0.0:80->80/tcp, 443/tcp   pedantic_turing
e79fb6440a95        postgres            "docker-entrypoint.s…"   About an hour ago   Up About an hour    0.0.0.0:5432->5432/tcp        pg-docker
Run Code Online (Sandbox Code Playgroud)

我成功连接了psql命令。

psql -h localhost -U postgres -d postgres
Run Code Online (Sandbox Code Playgroud)

但是,当我在pgAdmin上使用与psql相同的参数创建服务器时,出现以下错误。

无法连接到服务器:

无法连接到服务器:连接被拒绝服务器是否在主机“ localhost”(127.0.0.1)上运行并在端口5432上接受TCP / IP连接?无法连接到服务器:地址不可用服务器是否在主机“ localhost”(:: 1)上运行并接受端口5432上的TCP / IP连接?

我成功地通过docker inspect容器上给定的IPAddress连接。

顺便说一句,我检查了postgresql.conf并断言了它,listen_addresses = '*'并且还断言了pg_hba.conf包含host all all all md5

但是我不明白,为什么我不能使用本地主机地址?为什么码头工人甚至给我一个非本地地址?

postgresql docker

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

当容器需要连接宿主机时,为什么必须将 localhost 替换为 host.docker.internal?

我目前正在学习docker的基础知识。我了解到,当容器需要连接到主机时(假设我有一个本地 mysql 数据库),localhost它必须使用 as 域,而不是用作host.docker.internal域。

所以不要这样:

createConnection(
 host: "localhost",
 ...
)
Run Code Online (Sandbox Code Playgroud)

我会这样做:

createConnection(
 host: "host.docker.internal",
 ...
)
Run Code Online (Sandbox Code Playgroud)

我想我明白为什么会这样,但我只是想澄清为什么 docker 不明白什么localhost意思,以及为什么它必须替换为host.docker.internal.

提前致谢。

docker

1
推荐指数
1
解决办法
4818
查看次数