You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Podman中暴露Fleet动态变化的端口

解决方案

1. 固定容器内Fleet的服务端口

Fleet默认动态分配端口,要解决映射问题,首先得让它启动时使用固定端口。通过命令行参数指定端口即可:

  • 先确认Fleet的启动参数:

    ./fleet launch --help
    

    通常可以用--dock-port指定Dock API端口,--workspace-server-port指定工作区服务器端口。

  • 在Containerfile中写入固定端口的启动逻辑:

    FROM fedora:39
    
    # 安装Fleet依赖(根据实际需求调整,比如git、curl)
    RUN dnf update -y && dnf install -y git curl && dnf clean all
    
    # 下载并解压Fleet到容器内
    RUN curl -L https://download.jetbrains.com/fleet/fleet-latest.tar.gz | tar xz -C /opt
    WORKDIR /opt/fleet
    
    # 创建启动脚本,固定端口
    RUN echo '#!/bin/sh' > start-fleet.sh && \
        echo './fleet launch workspace --dock-port 35350 --workspace-server-port 35351' >> start-fleet.sh && \
        chmod +x start-fleet.sh
    
    # 声明要暴露的端口(仅为容器文档用途,实际映射需run时指定)
    EXPOSE 35350 35351
    
    # 启动Fleet
    CMD ["./start-fleet.sh"]
    

2. 映射容器端口到宿主机并对外暴露

构建并运行容器

构建镜像后,运行时将容器的固定端口映射到宿主机的对应端口,同时让宿主机端口监听所有网卡(允许外部访问):

# 构建镜像
podman build -t fedora-fleet-dev .

# 运行容器,映射端口到宿主机
podman run -d \
  -p 0.0.0.0:35350:35350/tcp \
  -p 0.0.0.0:35351:35351/tcp \
  fedora-fleet-dev

这里0.0.0.0表示宿主机的所有网卡都监听这些端口,确保Mac能通过服务器IP访问。

开放宿主机防火墙端口

Rocky Linux 9使用firewalld,需要开放映射后的端口:

# 临时开放端口(重启后失效)
firewall-cmd --add-port=35350/tcp --add-port=35351/tcp

# 永久开放端口
firewall-cmd --add-port=35350/tcp --add-port=35351/tcp --permanent
firewall-cmd --reload

3. Mac端通过SSH连接Fleet工作区

有两种方式实现SSH访问:

方式1:直接通过服务器IP访问映射端口

如果Mac和Rocky Linux服务器在同一网络(或服务器有公网IP),直接在Mac的Fleet中输入服务器IP和映射的端口即可连接。

方式2:SSH端口转发(更安全,适合跨网络)

如果服务器仅允许SSH访问,可通过端口转发将服务器的Fleet端口映射到Mac本地:

# 在Mac终端执行,转发端口到本地
ssh -L 35350:localhost:35350 -L 35351:localhost:35351 <服务器用户名>@<服务器IP>

之后在Mac的Fleet中连接localhost:35350即可,流量通过SSH隧道加密传输。

关键说明

  • 不用--net=host或--publish-all的原因:前者让容器直接使用宿主机网络,缺乏隔离性;后者随机映射端口,无法稳定访问。固定端口+显式映射既保证容器隔离,又能实现稳定的外部访问。
  • Containerfile中的EXPOSE仅为端口声明,实际将容器端口映射到宿主机的操作必须通过podman run -p指定,这是容器规范的要求,无法仅通过Containerfile完成。

内容的提问来源于stack exchange,提问作者Matt.M.888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:05:18