大家是怎么管理服务的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
sonnyclarity492
V2EX    程序员

大家是怎么管理服务的?

  •  
  •   sonnyclarity492 2024-04-29 15:18:32 +08:00 3139 次点击
    这是一个创建于 582 天前的主题,其中的信息可能已经有所发展或是发生改变。

    随着私有部署的程序越来越多,很多程序都默认使用 8008 3000 这样的默认端口,不修改会冲突,修改了有时候会想不起来对应的端口号。

    用 docker 的话端口号能和对应的容器对应起来,但复杂的带参数的启动命令可能会忘记,只得又去网上查找。

    请问 V 友们是如何管理私有服务的呢?有现成工具还是“纸笔”记录?

    24 条回复    2024-05-03 00:08:22 +08:00
    dif
        1
    dif  
       2024-04-29 15:21:39 +08:00   1
    看情况咯,有些用 pm2 ,有些用 supervisor 。 另外端口也都是由有点规则。不行就简单写个页面,做端口管理。几个增删改查就能搞定。
    LeslieLeung
        2
    LeslieLeung  
       2024-04-29 15:29:28 +08:00   1
    以前用 notion 的表格做过一个,主要是记某服务部署在哪台机器上了。后来不用 notion 了就没了。

    至于启动命令的问题,docker compose 能解决你的烦恼。不过有些默认用的 compose 会把目录挂载到 docker volume ,迁到其他机器不知道怎么办,一般我会改成挂载到某个目录。

    端口号记录这个,我用 nginx proxy manager 来统一对外,所以可以在那上面查。
    nevermoreluo
        3
    nevermoreluo  
       2024-04-29 15:41:02 +08:00   1
    @LeslieLeung

    compose 里面的默认挂载目录可以通过 docker volume ls + docker volume inspect xxxx_xx 拿到绝对路径迁移,可以尝试下,不过自己指定最好,省的磁盘满了有同学直接用工具把暂时不用的都给清理了。。。
    retanoj
        4
    retanoj  
       2024-04-29 15:43:28 +08:00   1
    所以企业有 域名 + Ngx + 后端服务 ;)
    henix
        5
    henix  
       2024-04-29 15:50:01 +08:00   4
    端口号分配我思考过对应用名 hash 的方法: https://blog.henix.info/blog/port-hash/

    命令行管理就 supervisor 咯
    evill
        6
    evill  
       2024-04-29 16:11:30 +08:00   1
    用了 docker ,上 docker compose 呗
    后续就剩下 docker compose down/up/restart 了
    lyer5
        7
    lyer5  
       2024-04-29 16:26:53 +08:00   1
    所有进程启动的时候都定时上报心跳注册服务信息到一个地方,比如 etcd 、zk
    Ubserate
        8
    Ubserate  
       2024-04-29 16:27:40 +08:00   1
    啊 所有服务都要暴露到外面去啊
    shixuedela
        9
    shixuedela  
       2024-04-29 17:07:09 +08:00   1
    你知道查询当前服务器运行了那些服务端口不就行了吗?
    root 用户 ss -tnlp 直接可以查询到端口对应的服务。 如果全部容器化的话 可以加一个代理。暴露一个端口就可以了
    sonnyclarity492
        10
    sonnyclarity492  
    OP
       2024-04-29 17:08:54 +08:00
    感谢楼上各位的解答,我了解到 docker compose 能有效管理 docker 应用(#6 );命令行启动的应用可以使用 supervisor ,nginx proxy manager 等工具来记录和管理(#1 ,#2 )。有关应用端口号的取值方法也值得学习(#5 )。

    有意思的是上报心跳(#7 ),这个有待我学习。

    还有 v 友提到域名,这个当然是有的,但是服务部署之后,一年半载就过去了,不记录就真记不起来了。
    KongLiu
        11
    KongLiu  
       2024-04-29 17:09:21 +08:00   1
    docker + portainer
    sonnyclarity492
        12
    sonnyclarity492  
    OP
       2024-04-29 17:15:34 +08:00
    @shixuedela 查占用端口 ss -tnlp 确实是可以的,但是如果同时跑了多个 python 脚本,只能看到 PID ,定位不到哪个脚本占用了,还得一个个排查。
    kgcHQbTYyvcz2w3j
        13
    kgcHQbTYyvcz2w3j  
       2024-04-29 17:17:41 +08:00   1
    全部用 docker compose ,哪怕最简单的 docker run 都写成 docker compose

    说起 docker compose ,推荐一个工具 Dockege
    shixuedela
        14
    shixuedela  
       2024-04-29 17:30:52 +08:00   1
    @sonnyclarity492 如果跑多个 Python 脚本 打包成镜像.通过端口映射 docker ps 也比较好管理.
    Mithril
        15
    Mithril  
       2024-04-29 17:46:58 +08:00   1
    直接用 portainer 管理容器,配个通配符的 DNS ,然后用 traefik 去做反向代理。
    记个简单的服务名就行了,记端口号太麻烦了。
    sparkinglemon
        16
    sparkinglemon  
       2024-04-29 17:50:55 +08:00   1
    一水 compose ,方便管理,而且到指定位置直接 docker compose pull && docker compose up -d 也方便,如果只提供了 docker run 的镜像,可以用类似的工具转换 https://www.composerize.com/
    Van426326
        17
    Van426326  
       2024-04-29 17:51:54 +08:00   1
    一般会用 nginx 反代,再配 ssl 证书,所以查端口可以看 nginx 配置 。另外会用 docker compose ,没有的话会把启动命令放在 sh 文件里面执行
    THESDZ
        18
    THESDZ  
       2024-04-29 19:13:58 +08:00   1
    docker + traefik
    IamUNICODE
        20
    IamUNICODE  
       2024-04-30 10:44:44 +08:00   1
    docker-compose 或者 pm2 吧,看情况
    rogeecn
        21
    rogeecn  
       2024-04-30 10:48:51 +08:00   1
    @Mithril 这也是我现在的 homelab 在用的方式,很方便。traefik 有自带面板,可以直接看到服务列表。
    proxychains
        22
    proxychains  
       2024-04-30 11:30:33 +08:00
    @henix #5 妙啊
    mayli
        23
    mayli  
       2024-05-01 16:06:42 +08:00   1
    > 但复杂的带参数的启动命令可能会忘记,只得又去网上查找
    如果你的需求是这个,那么就把服务写 systemd service ,这样端口号就写到了配置文件
    查找的时候 netstat -ntlp ,可以查看进程监听的端口号,这样可以找到了端口号对应的进程
    onebitbank
        24
    onebitbank  
       2024-05-03 00:08:22 +08:00
    我以前用 pm2 ,现在都用 ubuntu 自带的 systemd 管理服务,端口安排好不冲突就行
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5621 人在线   最高记录 667       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 06:15 PVG 14:15 LAX 22:15 JFK 01:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86