【问题标题】:Host resolution with Docker Compose not working with custom hostname使用 Docker Compose 进行主机解析不能使用自定义主机名
【发布时间】:2018-09-03 10:17:25
【问题描述】:

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

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

# 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

【问题讨论】:

  • 从哪里可以访问 backend.local 域?使用 docker 网络,或者您想将该域放在您的网络浏览器中,以便您可以通过该域访问特定容器?
  • 嗨 Jakub - 我希望 backend.local 可以通过浏览器访问,因此它运行 var/www 目录中的 PHP index.php 文件(当我修改文件时执行此索引文件上面使用端口 .eg localhost:8080 (我希望这是有道理的)
  • 我认为最简单的方法是在主机的/etc/hosts/ 文件中添加一个条目。你可以在这里找到一个相关的问题:Access docker container from host using containers name

标签: docker docker-compose dockerfile host hosts


【解决方案1】:

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

  • 将映射放入主机文件 backend.local -> localhost

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

  • 然后您就可以同时访问您的应用程序:localhost:8080 和 backend.local:8080

【讨论】:

    猜你喜欢
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多