Docker 撰写 |虚拟主机
Docker Compose | Virtual Hosts
我的代码有什么问题?提前致谢!
我正在尝试为我的 docker 容器设置一个虚拟主机。
在本地主机上: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
Hosts 文件不支持端口,因为它仅用于名称查找。所以你必须将你的主机文件设置为:
127.0.0.1 borgesmelo.local
然后使用 http://borgesmelo.local:8000
访问您的应用程序。
如果你正在监听8000端口,因为你已经在80端口上有其他东西,那么考虑使用nginx作为反向代理,然后你可以根据server_name. That way, you can access multiple applications through port 80. If you're dealing with docker containers, then consider looking into Traefik作为反向代理路由到不同的应用程序.
我的代码有什么问题?提前致谢!
我正在尝试为我的 docker 容器设置一个虚拟主机。 在本地主机上: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
Hosts 文件不支持端口,因为它仅用于名称查找。所以你必须将你的主机文件设置为:
127.0.0.1 borgesmelo.local
然后使用 http://borgesmelo.local:8000
访问您的应用程序。
如果你正在监听8000端口,因为你已经在80端口上有其他东西,那么考虑使用nginx作为反向代理,然后你可以根据server_name. That way, you can access multiple applications through port 80. If you're dealing with docker containers, then consider looking into Traefik作为反向代理路由到不同的应用程序.