首页 > 解决方案 > 在 docker 内部,访问容器名称

问题描述

我有我的 docker-compose 文件。它工作正常。此时,我希望能够访问 docker 实例中的容器名称(如master_appslave_app_1)。

version: '3.8'
services:
    master_app:
        build:
            context: ./docker/app
            dockerfile: Dockerfile
        image: my-image/app
        ports:
            - "50000:80"
        volumes:
            - .:/var/www/laravel-app
        networks:
            - laranet-net
    slave_app_1:
        build:
            context: ./docker/app
            dockerfile: Dockerfile
        image: my-image/app
        ports:
            - "80"
        volumes:
            - .:/var/www/laravel-app
        networks:
            - lara-net

在 docker 内部,我安装了 php (laravel),使用 phpgetHostName()可以获得容器 ID。

NAME                     SERVICE             STATUS              PORTS
lara-app_master_app_1    master_app          running             0.0.0.0:50000->80/tcp, :::50000->80/tcp
lara-app_slave_app_2_1   slave_app_2         running             0.0.0.0:51175->80/tcp

我需要这个的原因是为了.env为 Laravel 加载正确的文件。

我尝试过的一种非常糟糕的方法是使用$_SERVER['HTTP_HOST'],但它不适用于 CLI。

标签: phplaraveldockerdocker-compose

解决方案


推荐阅读