你能在不暴露任何端口的情况下使用 nginx 反向代理到 docker 容器吗?

Can you use nginx reverse proxy to docker containers without exposing any ports?

我想知道是否可以将 nginx 与 docker 组合使用作为 api 网关/反向代理/ssl 终止点而不暴露其背后容器上的任何端口。 IE。当链接容器以通过 nginx 进行通信时,我只想使用 docker 创建的内部网。理想情况下,唯一可公开访问的端口是 nginx 上的端口 443 (ssl)。这可行吗?还是我必须公开容器上的端口?

可以。

只需在一个容器中定义您的应用程序,在另一个容器中定义 nginx,两者都在同一个 docker-compose.yml 中。 Link 他们。并且只暴露nginx容器中的443端口

docker-compose.yml

nginx:
    image: nginx
    links:
        - node1:node1
        - node2:node2
        - node3:node3
    ports:
        - "443:443"
node1:
    build: ./node
node2:
    build: ./node
node3:
    build: ./node

更多信息:http://anandmanisankar.com/posts/docker-container-nginx-node-redis-example/

此致