https://www.yannmoisan.com/docker.html
docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy
docker run -d -e VIRTUAL_HOST=site1 ymn/site1
docker run -d -e VIRTUAL_HOST=site2 ymn/site2
怎么就nginx-proxy
就能获取到 site1.domain
然后当 nginx-proxy
收到 80 端口请求后再动态转发给 site
这个容器的?
如果不用这种形式的话。是不是就只能是改容器内的 nginx 的配置文件?
1
Tink 2021-03-30 07:58:54 +08:00 via Android
反向代理吧
|
2
dzdh OP |
4
Tink 2021-03-30 09:12:17 +08:00 via Android
@dzdh
Let’s create a new project, divided in 3 folders : site1, site2, proxy. One folder for each container. proxy Dockerfile conf conf.d site1.conf site2.conf site1 Dockerfile index.html site2 Dockerfile index.html |
5
oott123 2021-03-30 09:39:15 +08:00 via Android
人家写得很清楚…
Docker expose a remote API that allows to automate many tasks. So some projects leverage this API, like nginx-proxy which generate automatically the config of the proxy: |
6
Kilerd 2021-03-30 09:58:03 +08:00
本质上这个就是用 docker-gen 来实时读取 docker container 的列表,然后筛选出带 host 标签的 container,然后生成一份最新的 nginx.conf,然后执行 nginx reload, 就这么简单
|