docker - UCP 和 HTTP 服务器在 Docker 上的共存
问题描述
我有一个在 IP 主机上运行的 Docker EE 172.10.100.17
。我已经使用默认参数安装了 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
- UCP 和 Nginx 可以同时服务于两者
https://172.10.100.17
吗? - 当我的主要目标是让 nginx/apache 在主机 IP 上提供服务时,部署 UCP 的最佳做法是什么?
- 是否建议为 nginx 容器/服务设置静态 IP?
(注意:在 nginx 上启用了 https)
解决方案
关键在于处理端口映射的 -p 参数。列出的第一个端口在主机上,第二个在容器中。所以 -p 80:80 表示将主机上的 80 端口映射到容器中的 80 端口。
让我们将其扩展到 Nginx。我将假设您想将 HTTPS 与 UCP 和 Nginx 一起使用。主机上的每个端口只有一个应用程序可以侦听。因此,如果两个容器都暴露端口 443,您可以让一个使用主机上的端口 443 (-p 443:443),而另一个使用不同的端口 (-p 4443:443)。然后,您将分别在主机上的端口 443 和 4443 访问它们,即使两个容器都公开端口 443 - Docker 正在执行端口转发。
您可能会问如何使用 Nginx 作为反向代理在单个端口上运行两个容器。这也是一种可能性,尽管更复杂。
推荐阅读
- oauth - window.gapi.auth2.getAuthInstance().signIn 不在 Safari 中发送回调
- botframework - 我如何用从数据库中获取的用户名问候登录用户?
- python - 在 Pycharm 上安装 BeautfulSoup
- g1ant - 我正在使用 G1ANT 软件,并提前上课。3 我在处理输入键 btnK 时遇到错误,所以我应该怎么做才能正确删除它
- r - 变量名中的空格,使用 group_by
- android - GridLayout 不出现
- reactjs - Typescript接口扩展和转换
- spring - 第一个 jpa 对象过滤存储库函数中模型内的嵌套对象
- reactjs - 测试 React 应用程序时如何模拟 fetch?
- javascript - electron-builder 编译后显示白页