使用nginx代理在docker容器中运行多个开发项目
据我所知,使用nginx代理在docker容器中运行多个开发项目,nginx,docker,Nginx,Docker,据我所知,docker compose文件使用docker compose up命令加载图像并启动容器。相反,使用Dockerfile文件和docker build命令只创建图像。我想我在这里遗漏了一些东西,因为事情并不像我希望的那样运作 按照说明,我使用docker compose up d安装了一个运行良好的程序。然后可以通过localhost:81访问 version: '2' services: mariadb: image: bitnami/mariadb:latest
docker compose
文件使用docker compose up
命令加载图像并启动容器。相反,使用Dockerfile
文件和docker build
命令只创建图像。我想我在这里遗漏了一些东西,因为事情并不像我希望的那样运作
按照说明,我使用docker compose up d
安装了一个运行良好的程序。然后可以通过localhost:81访问
version: '2'
services:
mariadb:
image: bitnami/mariadb:latest
volumes:
- /path/to/mariadb-persistence:/bitnami/mariadb
wordpress:
image: bitnami/wordpress:latest
depends_on:
- mariadb
ports:
- '81:80'
- '443:443'
volumes:
- ./wordpress-persistence:/bitnami/wordpress
- ./apache-persistence:/bitnami/apache
- ./php-persistence:/bitnami/php
因为我希望能够以domain.com.dev的身份访问它,所以我研究了实现。根据那里的指示,并从中获得一些灵感,我得出以下结论:
version: '2'
services:
nginx-proxy:
image: jwilder/nginx-proxy
container_name: nginx-proxy
restart: always
ports:
- "88:80"
volumes:
- "/var/run/docker.sock:/tmp/docker.sock:ro"
mariadb:
image: bitnami/mariadb:latest
volumes:
- //c/websites/domain_com/mariadb-persistence:/bitnami/mariadb
domain.com.dev:
image: bitnami/wordpress:latest
depends_on:
- mariadb
ports:
- '81:80'
environment:
- VIRTUAL_HOST=domain.com.dev
volumes:
- //c/websites/domain_com/wordpress-persistence:/bitnami/wordpress
- //c/websites/domain_com/apache-persistence:/bitnami/apache
- //c/websites/domain_com/php-persistence:/bitnami/php
运行docker compose up-d
时,此操作似乎没有错误。然而,当我在浏览器中访问domain.com.dev时,我会得到一个默认索引/page,这表明我不知何故获得了部分但不是全部。查看本地文件夹,它们会被创建,但似乎不会填充wordpress持久化
,这可以解释浏览器中的默认视图
你有没有想过为什么事情没有如预期的那样发生?很明显我遗漏了什么?1)对于第一种方法,您需要“完成”配置。
如果没有运行的Web服务器(nginx、apache等)(在端口80上)-只需将端口从81
更改为80
:
ports:
- '80:80'
- '443:443'
并将记录“127.0.0.1 domain.com.dev
”添加到您的hosts
文件(/etc/host
在linux中)
注意:在第二种方法中,您可以将端口从88
更改为80
——它将在不更改主机
文件的情况下工作
如果您在端口80上有一个正在运行的wevserver,那么需要在virtualhost配置文件中添加代理指令。以下是一个例子:
server {
listen 80 default_server;
server_name _;
include expires.conf;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://172.17.0.1:81;
proxy_http_version 1.1;
}
}
2) 第二种方法通常用于dnsmasq
配置。
使用和链接可以获得更详细的信息和配置示例