首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jwilder/nginx-proxy在同一容器的不同端口上运行虚拟主机

使用jwilder/nginx-proxy在同一容器的不同端口上运行虚拟主机
EN

Stack Overflow用户
提问于 2016-09-07 00:41:09
回答 1查看 833关注 0票数 0

我试图在jwilder/nginx-proxy后面运行sonatype/nexus3,目的是将其用作maven和docker私有repo。我想让nginx代理nexus子域名连接到的端口8081,并将代理docker子域连接到同一个容器的端口8082。这个是可能的吗?

首先,我使用“让我们加密证书”使maven部分在TSL上作为nexus.mydomain.com工作时没有问题:

docker run --restart=always --name nginx -d -p 80:80 -p 443:443 -v /root/certs/:/etc/nginx/certs -v /var/run/docker.sock:/tmp/docker.sock:ro jwilder/nginx-proxy

docker run --restart=always -d -p 8081:8081 --name nexus -e VIRTUAL_HOST=nexus.mydomain.com -v /root/nexus-data:/nexus-data sonatype/nexus3

然后我意识到,为了让docker私有存储库运行,我需要使用额外的端口。因此,我在端口8082上创建了docker repo,并使用保存的配置重新创建了容器,公开了新端口并添加了一个子域:

docker run --restart=always -d -p 8081:8081 -p 8082:8082 --name nexus -e VIRTUAL_HOST=nexus.mydomain.com,docker.mydomain.com -v /root/nexus-data:/nexus-data sonatype/nexus3

我曾尝试覆盖nginx配置,在/etc/nginx/vhost.d上挂载一个卷,但没有成功。有什么线索吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-28 02:19:18

因为jwilder/nginx-proxy使用循环关闭容器和每个容器一个端口。您可以更新nginx-proxy模板,或者使用两个带有socat的容器将tcp流量代理到相应的端口。

我将端口8082更改为5000 (这是docker注册中心的标准端口)

请参见blow an example docker-compose.yml

代码语言:javascript
复制
version: '2'


services:

  nexus:
    image: sonatype/nexus3
    expose:
      - "8081"
      - "5000"
    environment:
      - VIRTUAL_HOST=nexus.example.com
      - VIRTUAL_PORT=8081


  registry:
    restart: always
    image: alpine/socat
    expose:
      - "5000"
    command: TCP4-LISTEN:5000,fork TCP:nexus:5000
    environment:
      - VIRTUAL_HOST=registry.example.com
      - VIRTUAL_PORT=5000
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39353971

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档