Docker Compose的主机解析无法使用自定义主机名

问题描述 投票:0回答:1

我有一个Docker Compose,运行时允许我使用端口80直接在浏览器中访问容器(例如localhost:8080)但是我想添加我自己的自定义主机名,例如backend.local而不是我如何在Docker Compose文件中执行此操作

我已将backend.local添加到我的Windows主机文件并完成了作曲家构建,但我一直收到“此站点无法访问”错误消息

# Adopt version 2 syntax:
#   https://docs.docker.com/compose/compose-file/#/versioning
version: '3'

volumes:
    database_data:
        driver: local

services:
###########################
# Setup the Nginx container
###########################
nginx:
    image: nginx:latest
    container_name: nginx-container
    volumes:
        - ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
    dns:
        - 192.168.55.10
    dns_search: backend.local

###########################
# Setup the PHP container
###########################
php:
    build: ./docker/php/
    container_name: php-container
    expose:
        - 9000
    volumes:
        - .:/var/www
    hostname: backend.local

###########################
# Setup the Database (MySQL) container
###########################
mysql:
    image: mysql:latest
    container_name: mysql-container
    expose:
      - 3306
    volumes:
      - database_data:/var/lib/mysql
      - ./db/bootstrap.sql.gz:/docker-entrypoint-initdb.d/bootstrap.sql.gz
    environment:
        MYSQL_ROOT_PASSWORD: secret
        MYSQL_DATABASE: project
        MYSQL_USER: project
        MYSQL_PASSWORD: project
docker docker-compose dockerfile host hosts
1个回答
2
投票

Docker无法影响主机的DNS解析,因此您可以做的就是:

  • 将映射放在hosts文件backend.local - > localhost中
  • 使用ports语句在8080端口上公开应用程序
  • 然后,您可以在以下两个位置访问您的应用程序:localhost:8080和backend.local:8080
© www.soinside.com 2019 - 2024. All rights reserved.