V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codermali
V2EX  ›  Docker

请教 docker 使用,端口冲突的问题

  •  
  •   codermali · 15 天前 · 801 次点击

    我自己的 docker 上部署了很多服务,其中有很多都需要发送邮件通知,也就是说要占用 465 ,或者 587 ,所以就会冲突了。 想请教下会有什么解决方案吗?

    10 条回复    2024-04-30 09:59:06 +08:00
    yidinghe
        1
    yidinghe  
       15 天前 via Android
    感觉你描述有问题。一个服务需要发邮件,只需要连到邮件服务器即可,自身不需要侦听任何端口。
    customsshen
        2
    customsshen  
       15 天前
    Bridge 模式改下映射端口
    SoulSleep
        3
    SoulSleep  
       15 天前
    我的 CPU 烧了...你试过真的会冲突吗....比如你都要使用 smtp.qq.com:465
    哪怕你在一台机器上部署 100 个微服务在发邮件,也不会冲突...😓😓😓😓
    NoobNoob030
        4
    NoobNoob030  
       15 天前
    没看懂,建议重新描述一下
    oreader996
        5
    oreader996  
       15 天前
    这种不要占用端口,叫做连接邮件服务,只是链接比如 smtp.qq.com:465 这个端口,自身不需要占用端口
    oreader996
        6
    oreader996  
       15 天前
    上面错别字有点多,我重新输入一下。这种不叫占用端口,叫做连接邮件服务,只是连接比如 smtp.qq.com:465 这个端口,自身不需要占用 465 这个端口的
    cpstar
        7
    cpstar  
       15 天前
    是不是需要补充一下网络基础知识呢?比如什么叫服务端端口,什么叫客户端端口。5# 说的自身也会占用端口,只不过作为客户端端口,会随机启用一个未占用的端口来连接服务端端口。然后如果很多都是服务,那必然要分别使用不同的端口,但是“发邮件通知”完全就是要给客户端的行为。谁告诉你发邮件也要占用 465 或者 587 的。
    soundlife
        8
    soundlife  
       15 天前
    - 邮件服务端才需要监听 465 587 端口,客户端连接服务端时一般使用的是高位的随机分配端口。docker 不需要配置端口映射;
    - 回到 docker 的问题上,可以创建一个 docker 网络,将服务端和客户端的容器都加入到这个网络中,就不需要对外映射端口。如果非要对网络外提供服务就再套个 nginx 。这样就只需要映射 nginx 的端口就可以了
    codermali
        9
    codermali  
    OP
       14 天前
    @yidinghe
    @customsshen
    @SoulSleep
    @NoobNoob030
    @oreader996
    @cpstar
    @soundlife

    感谢各位的回复。
    不过你们的回复我感觉跟我的描述的不是一回事,可能是我的描述不是很清楚,现在补充一下。
    我使用 docker ,习惯使用 docker compose 进行部署。
    如下是 gitlab 服务的端口映射,占用了 587 端口:

    ```
    ports:
    - 32680:80
    - 587:587
    ```

    如果我其他的服务也需要发送邮件通知,那么,那么也是需要使用 587 端口的。这样,docker compose 是启动不了的。
    我想问的就是这个。
    NoobNoob030
        10
    NoobNoob030  
       13 天前
    1. 其他服务换外部端口,例如 10587:587 ,宿主机的 587 端口只能给一个容器用
    2. 如果只是容器和容器之间访问,可以加入同一个 network,通过 gitlab:587 访问,没必要端口映射到宿主机
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6334 人在线   最高记录 6547   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 01:42 · PVG 09:42 · LAX 18:42 · JFK 21:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.