docker - 在 docker 服务中,如何公开共享一个端口和私有共享一个端口?
问题描述
我正在构建一个 docker 服务,其中包括一个 squid 和一个 icap 服务。Squid 在端口 3128 上运行,该端口是公共的。ICAP 服务在端口 1344 上运行,我不想公开,因为这将包含解密的 Web 流量。我希望只有 squid 才能访问它,它是 icap 客户端。
我的问题是,我该如何设置,以便 e2guardian 服务上的端口 1344 在 squid 可访问的专用网络上运行,但未发布到“客户”网络上的任何人都可以使用它的地方?
我包括我的 docker compose 文件。
“squidnet”网络实际上是一种遗留物。我想知道我是否可以将 squidnet 设为私有,然后仅在 squidnet 上共享 1344,但仍有 3128 公共用于本地 LAN 上的 squid 服务公共。我将如何更改 docker compose 文件以适应这种情况?
谢谢
version: "3"
services:
squid:
# replace username/repo:tag with your name and image details
image: jusschwa/docker-squid-sslbump-rpi
deploy:
replicas: 1
restart_policy:
condition: on-failure
volumes:
- "/workspace/etc/squid/squid.conf:/usr/local/squid/etc/squid.conf"
- "/workspace/certs:/usr/local/squid/ssl"
ports:
- "3128:3128"
networks:
- squidnet
e2guardian:
image: jusschwa/e2guardian-rpi
ports:
- "1344:1344"
volumes:
- "/workspace/etc/e2guardian:/etc/e2guardian"
deploy:
replicas: 1
restart_policy:
condition: on-failure
networks:
- squidnet
networks:
squidnet:
解决方案
如果expose
您不想将端口发布到主机,请使用。当您使用ports
它时,它会将端口发布到主机。
阅读更多
将容器的 3306 映射到主机 3306
ports:
- 3306:3306
将容器的 3306 暴露给网络
expose:
- 3306
推荐阅读
- video - 如何在页面刷新时停止 boostrap 模态视频自动播放
- sql-server - SQL Geography.STContains 返回错误值
- css - 全高弯曲的角材料垫抽屉,内容自动溢出
- r - R - doc_parse_file 中的错误
- python - 通过python读取其中一列作为超链接的Excel文件
- php - JSON 多维数组未在 PHP 上显示
- python - 如何在 Scrapy 项目中使用 PyMongo 插入新记录 MongoDB 时删除重复项
- android - 使用 tasker 或 shell 设置数据限制/数据警告
- f# - Visual Studio 中的 Xamarin Android -- fsproj 文件存储我在调试器中运行的设备
- javascript - 如何更改 input type="date" datepicker 的外观?