使用 docker 进行开发 - 如何从不同的本地主机端口获取数据

Development with docker - how to fetch data from a different localhost port

我的 docker 设置非常简单

version: '3.7'
services:

    php:
        build: ./docker/php
        ports: ['9000:9001']
        volumes:
            - ./symfony/:/var/www/symfony:cached

    nginx:
        build: docker/nginx
        restart: unless-stopped
        ports:
            - "7000:80"
        volumes:
            - ./docker/var/nginx:/var/log/nginx:cached
            - ./symfony/:/var/www/symfony:cached

所以http://localhost:7000是我的发展路线。 在这里 php 我尝试从另一个本地 docker 安装中获取 api 端口 8000(或端口 80)。

$result = file_get_contents('http://localhost:8000');
$result = file_get_contents('http://localhost');
-> Warning: ... failed to open stream: Address not available

但真正的 url 工作正常

$result = file_get_contents('https://www.google.de')

我不明白这是怎么回事。 如果有任何帮助,我将非常高兴。

使用它来获取容器 ip: docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' container_name

使用它来获取主机 ip: $(主机名 -I| awk '{printf $1}')

$result = file_get_contents('http://host_ip:8000');