猿问

使用 docker 连接 mysql 主机地址不用 ip 形式的原理是什么?

使用 docker 搭建的 PHP 环境,配置文件连接 mysql,redis 的主机地址,如 REDIS_HOST=redis,而不是 ip 形式如 127.0.0.1,为什么可以这样?

REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379

其中 dockerfile 文件没有特别指明,docker-compose.yml 文件也没看到相关的设置。以下是 docker-compose.yml 文件 redis 容器部分的定义:

### Redis Container #########################################

    redis:
      build: ./redis
      volumes:
        - ${DATA_SAVE_PATH}/redis:/data
      ports:
        - "${REDIS_PORT}:6379"
      networks:
        - backend

不懂这是什么原理?应该跟 docker 有关,难道 docker-compose 定义了这个 redis 服务叫 “redis”,所以就可以用 redis 代替 ip 表示主机吗?


互换的青春
浏览 1993回答 2
2回答

慕桂英4014372

这里 composer-compose 中的 redis 是一个服务,也是一个容器,就相当于两个容器互联可以指定别名作为主机名一样。
随时随地看视频慕课网APP
我要回答