Docker 上的 UCP 和 HTTP 服务器共存

Coexistence of UCP and HTTP server on Docker

我在 IP 172.10.100.17 的主机上有一个 Docker EE 运行。我已经使用默认参数安装了 UCP,我还部署了 nginx 容器,主机端口 443 映射到容器上的 443。

docker run -it --rm --name ucp -v /var/run/docker.sock:/var/run/docker.sock docker/ucp install --host-address 172.10.100.17 --interactive  
docker run -it -d --name ngx -p 80:80 -p 443:443 nginx
  1. UCP 和 Nginx 可以共存吗? https://172.10.100.17
  2. 当我的主要目标是 nginx/apache 在主机 IP 上提供服务时,部署 UCP 的最佳做法是什么?
  3. 是否建议为 nginx 设置一个静态 IP container/service?

(注意:nginx 启用了 https)

The key is in the -p parameter, which handles port mapping. The first port listed is on the host, and the second is in the container. 所以-p 80:80的意思是把宿主机的80端口映射到容器的80端口。

让我们将其扩展到 Nginx。我将假设您想将 HTTPS 与 UCP 和 Nginx 一起使用。只有一个应用程序可以侦听主机上的每个端口。因此,如果两个容器都公开端口 443,您可以让一个使用主机上的端口 443 (-p 443:443),另一个使用不同的端口 (-p 4443:443)。然后你将分别在主机上的端口 443 和 4443 访问它们,即使两个容器都暴露端口 443 - Docker 正在做端口转发。

您可能会问如何 运行 使用 Nginx 作为反向代理在一个端口上同时运行两个容器。这也是一种可能性,尽管更复杂。