码头工人撰写 |虚拟主机

Posted

技术标签:

【中文标题】码头工人撰写 |虚拟主机【英文标题】:Docker Compose | Virtual Hosts 【发布时间】:2018-10-14 08:07:39 【问题描述】:

我的代码有什么问题?提前致谢!

我正在尝试为我的 docker 容器设置一个虚拟主机。 在 localhost:8000 上运行完美,但是当我尝试通过 http://borgesmelo.local/ 访问时,出现错误 ERR_NAME_NOT_RESOLVED,可能缺少什么?

这是我的 -> docker-compose.yml

version: '3.3'

services:

      borgesmelo_db:
            image: mariadb:latest
            container_name: borgesmelo_db
            restart: always
            volumes:
                  -  ./mariadb/:/var/lib/mysql

            restart: always
            environment:
                  MYSQL_ROOT_PASSWORD: My@159#Sql
                  MYSQL_PASSWORD: My@159#Sql

      borgesmelo_ws:
            image: richarvey/nginx-php-fpm:latest
            container_name: borgesmelo_ws
            restart: always
            volumes:
                  -  ./public/:/var/www/html
            ports:
                  - "8000:80"

      borgesmelo_wp:
            image: wordpress:latest
            container_name: borgesmelo_wp
            volumes:
                  -  ./public/:/var/www/html
            restart: always
            environment:
                  VIRTUAL_HOST: borgesmelo.local
                  WORDPRESS_DB_HOST: borgesmelo_db:3306
                  WORDPRESS_DB_PASSWORD: My@159#Sql
            depends_on:
                  - borgesmelo_db
                  - borgesmelo_ws

      borgesmelo_phpmyadmin:
            image: phpmyadmin/phpmyadmin:latest
            container_name: borgesmelo_phpmyadmin
            links:
                  - borgesmelo_db
            ports:
                  - "8001:80"
            environment:
                  - PMA_ARBITRARY=1

      borgesmelo_vh:
            image: jwilder/nginx-proxy
            container_name: nginx-proxy
            ports:
                  - "8002:80"
            volumes:
                  - /var/run/docker.sock:/tmp/docker.sock:ro
networks:
  default:
    external:
      name: nginx-proxy

这是我的主机文件 (/etc/hosts) [macOS]

#DOCKER
127.0.0.1:8000          borgesmelo.local

【问题讨论】:

【参考方案1】:

Hosts 文件不支持端口,因为它仅用于名称查找。所以你必须将你的主机文件设置为:

127.0.0.1          borgesmelo.local

然后使用http://borgesmelo.local:8000 访问您的应用程序。

如果你正在监听 8000 端口,因为你已经在端口 80 上有其他东西,那么考虑使用 nginx 作为反向代理,然后你可以根据server_name 路由到不同的应用程序。这样,您可以通过端口 80 访问多个应用程序。如果您正在处理 docker 容器,请考虑将 Traefik 作为反向代理。

【讨论】:

以上是关于码头工人撰写 |虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章

牧场主网络码头工人撰写

码头工人。从主机发送邮件

码头工人群或牧场牛中的芹菜工人

由于 ssh 密钥,Git 推送失败:主机密钥验证失败。从码头工人内部

Akka遥控器在码头工人容器中

詹金斯错误的卷权限