V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
rqzrqh
V2EX  ›  云计算

多服务的 docker 方案该如何正确实现?

  •  
  •   rqzrqh · 357 天前 · 1573 次点击
    这是一个创建于 357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有一个打包好的镜像,希望传递参数而启动不同的微服务。 比如市场 a ,市场 b ,市场 c 等等,这样的市场会有很多个,一个服务可以启动多个实例来支撑一个市场,每个实例启动后大概会消耗 1G 内存。

    本来是想用 gcp 的 app engine 方案,远程打包远程部署,但是因为代码没开源只能采用本地打包、远程运行的方式(用 secret 似乎是可以的,不过没有去研究了)。 本着不想自己买服务器的想法,也顺便试试更牛逼的 serverless ,尝试采用 gcp 的 cloud run 方案,但是发现了一个新问题,那么多市场每一个都要在 cloud run 配服务,太麻烦了,万一程序要升级重新发包又要创建一批服务。

    看上去似乎只能是用脚本直接启动,之前没用过 docker ,不知道是不是需要买服务器用容器编排的方式?或者有什么更合适的方法?

    第 1 条附言  ·  357 天前
    进一步调用后发现可以用 gcloud run deploy 加上不同的参数方便创建服务,不用在 web 页面上一个个点。
    5 条回复    2024-01-05 20:23:40 +08:00
    NelsonZhao
        1
    NelsonZhao  
       357 天前
    单实例多服务可以考虑 docker compose ,多实例多服务就需要 k8s 了,嫌麻烦可以用 k3s
    thinkershare
        2
    thinkershare  
       357 天前
    看你最终服务的数量,升级的频繁性等等,用户规范等, 最终还能还是需要 DevOps+K8s 来支撑整个流程的自动化。前期可以自己编写一些自动化脚本来完成一些重复性的工作。
    CivAx
        3
    CivAx  
       357 天前
    比较通常的做法是 entrypoint 指向到一个 init.sh ,通过传入不同的参数给脚本,唤起不同的后端
    bthulu
        4
    bthulu  
       357 天前
    docker run -d image1;
    docker run -d image2;
    docker run -d image3;
    julyclyde
        5
    julyclyde  
       357 天前
    给容器传递,无非就是环境变量或者 entrypoint 加参数这几个办法呗
    但是我还是建议直接分开。因为有时候你手工 docker run 的时候可能想不起来做环境变量或者参数
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2150 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:54 · PVG 08:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.