【发布时间】: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