在docker服务中,如何公开共享一个端口和私有共享一个端口?

时间:2019-07-01 11:55:50

标签: docker docker-compose

我正在构建一个包含鱿鱼和icap服务的docker服务。 Squid在端口3128上运行,并且此端口是公共端口。 ICAP服务在端口1344上运行,该端口我不想公开,因为它将包含解密的Web流量。我希望只能由鱿鱼(这是icap客户端)访问此

我的问题是,我该如何进行设置,以使e2guardian服务上的端口1344运行在可通过鱿鱼访问但未发布的专用网络上,而“客户”网络上的任何人都可以使用它? >

我包括了docker compose文件。

“ squidnet”网络实际上是一种剩余物。我想知道是否可以将squidnet设置为私有,然后仅在squidnet上共享1344,但是对于本地LAN上的squid服务仍要公开3128。我将如何更改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:

1 个答案:

答案 0 :(得分:0)

如果您不想将端口发布到主机,请使用expose。当您使用ports时,它会将端口发布到主机。 Read more

将容器3306映射到主机3306

ports:
 - 3306:3306

将容器3306暴露在网络中

expose:
 - 3306