Docker Compose的主机解析不适用于自定义主机名

时间:2018-09-03 10:17:26

标签: docker docker-compose dockerfile host hosts

我有一个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

1 个答案:

答案 0 :(得分:2)

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

  • 在主机文件backend.local中添加映射-> localhost

  • 使用ports语句在8080端口上公开您的应用程序

  • 然后,您可以在localhost:8080和backend.local:8080

  • 上访问应用程序