![Docker 容器通过 Docker 外部的特定端口进行通信](https://linux22.com/image/765528/Docker%20%E5%AE%B9%E5%99%A8%E9%80%9A%E8%BF%87%20Docker%20%E5%A4%96%E9%83%A8%E7%9A%84%E7%89%B9%E5%AE%9A%E7%AB%AF%E5%8F%A3%E8%BF%9B%E8%A1%8C%E9%80%9A%E4%BF%A1.png)
所以我目前面临的问题是,我无法与特定端口通信,该端口不在我的 docker 设置范围内。确切地说:
正如您在下面的 docker-compose.yml 中看到的,我在 docker 设置中运行 nginx 和 php。我现在正在尝试使用一个 PHP 框架,它需要与端口 10011 上的服务器通信,该服务器作为我的电脑上的本地服务器运行。在本例中,它是一个 teamspeak 服务器,但这对主题本身没有任何影响。
当我尝试通过我的 php docker 容器连接到此服务器时,出现错误111 - Connection refused
。当我通过 XAMPP 运行完全相同的代码时,一切都运行正常。所以我的 docker 设置似乎有问题。
我的docker-compose文件:
version: "3.2"
services:
php:
build:
context: './.docker/php/'
args:
PHP_VERSION: ${PHP_VERSION}
networks:
- backend
volumes:
- ${PROJECT_ROOT}/:/var/www/html/
container_name: php
apache:
build:
context: './.docker/apache/'
depends_on:
- php
- db
networks:
- frontend
- backend
ports:
- "80:80"
volumes:
- ${PROJECT_ROOT}/:/var/www/html/
container_name: apache
networks:
frontend:
backend:
volumes:
data:
注意:为简洁起见,所有不相关的容器已被删除。
我该如何解决这个问题?当 Teamspeak 服务器不在本地运行,而是在完全自己的服务器上运行时,我需要更改什么?
感谢您的阅读。