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

docker 项目资料全部打包

  •  
  •   RedBeanIce · 2024-05-10 16:07:53 +08:00 · 3849 次点击
    这是一个创建于 413 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我对于 docker 还是不太熟悉。
    公司目前是单体服务,每个客户都是一套部署环境。

    工程部的人提了一个需求,希望更快的给客户演示+搭建生产系统提供给客户使用。
    问题:工程部在部署服务的时候太麻烦了。希望方便部署。

    1 ,目前领导想的是,将 springboot+mysql+redis+ng+前端全部打包到一个镜像里面去,
    那么工程部在运行的时候,安装 docker desktop ,pull ,run 即可
    2 ,我想的是 docker compose ,

    我想问的问题:
    1 ,到底选择打包到一个镜像,或者是 docker compose ,或者是其他的方案呢?????
    20 条回复    2024-05-11 15:47:00 +08:00
    Karte
        1
    Karte  
       2024-05-10 16:15:17 +08:00   ❤️ 1
    compose.
    打包进一个的话容器删了就等于全停了, 而且无法监控所有服务的状态.
    docker 判断容器存货就看最后一个指令, 也就是最后一个指令的 PID. 如果这个 PID 存货就是 RUNNING, 如果挂了就是 STOP.
    假设你都打包进去了, 而 PID 则是一个 top 指令. 这时只要任意一个服务挂了你是不知道的, 因为 PID 对应的进程依旧跑着. 如果你想排查, 不好意思, docker logs 的日志都是 PID 进程的. 你想看只能进到容器里, 或者将日志映射到宿主机上.
    wunonglin
        2
    wunonglin  
    PRO
       2024-05-10 16:17:09 +08:00   ❤️ 1
    docker compose
    wunonglin
        3
    wunonglin  
    PRO
       2024-05-10 16:18:42 +08:00   ❤️ 1
    生产部署用 k3s 、k8s ,演示部署直接 docker compose 就行。all in one = all in boom
    juzisang
        4
    juzisang  
       2024-05-10 16:19:40 +08:00   ❤️ 2
    docker compose 你提供 docker-compose.yaml 即可,部署的人 docker compose up -d 就行,比 docker run 加一堆参数更方便,而且还能做版本管理。
    iyiluo
        5
    iyiluo  
       2024-05-10 16:21:52 +08:00   ❤️ 1
    肯定是 compose ,compose 也可以一键,全部装一起你得自己做镜像,安装一堆坑还违反了 docker 规范
    Karte
        6
    Karte  
       2024-05-10 16:26:24 +08:00
    对了, 你这个是 Docker 相关的话题, 建议把话题转到 /go/docker. 而不是 /go/java
    RedBeanIce
        7
    RedBeanIce  
    OP
       2024-05-10 16:28:25 +08:00
    感谢各位,我去试试 docker compose 。哈哈哈哈

    @Karte
    @wunonglin
    @juzisang
    @iyiluo
    RedBeanIce
        8
    RedBeanIce  
    OP
       2024-05-10 16:29:12 +08:00
    @Karte 好的,,我挪一下位置去,,主要我还是个 javaer 为主。。
    RedBeanIce
        9
    RedBeanIce  
    OP
       2024-05-10 16:29:40 +08:00
    @Karte 过时间了,,,,超过 move 的时间了。。。
    stille
        10
    stille  
       2024-05-10 16:50:34 +08:00
    用 docker compose
    直接把 nginx 配置文件,mysql redis 等数据用 -v ./xxx 挂在到本地目录,压缩保存整个项目文件就行了。
    chuck1in
        11
    chuck1in  
       2024-05-10 17:14:05 +08:00
    这么看起来我这个项目真是为 op 量身定做的。。。

    https://www.v2ex.com/t/1039258

    项目下载下来以后参考 compose.yml 和 dockerfile 这两个文件。

    或者直接去 github 抄
    https://github.com/ccmjga/mjga-scaffold

    如果你需要 redis 这些,在线选配 redis 以后下载下来,compose.yml 里面就会把 redis 这些给你配好。
    rexyan
        12
    rexyan  
       2024-05-10 17:18:09 +08:00
    肯定是 docker-compose 啊,docker 是单进程的。这意味着如果你全都打包在一起,有一个服务挂了,你不知道
    javalaw2010
        13
    javalaw2010  
       2024-05-10 18:00:45 +08:00   ❤️ 1
    只以演示为目的的话,其实 fat container 的做法也是可以的,甚至硬要上生产跑也是可行的。

    通常意义上 docker style 还是一个进程一个容器,不过也有不少人不赞同这种做法的,比如 podman 就给了用户更大的选择权。而 docker 方面的话有一些开源的 init ,最著名的比如 S6: https://github.com/just-containers/s6-overlay

    具体那种做法更好,其实见仁见智了,毕竟树挪死人挪活。
    oneisall8955
        14
    oneisall8955  
       2024-05-10 19:22:27 +08:00 via Android
    docker compose 梭哈
    512357301
        15
    512357301  
       2024-05-10 20:24:05 +08:00 via Android
    aio 也可以吧,能跑起来才是最好的,测试、演示,肯定是越简单越好。
    甚至可以把已经能跑起来的容器 or 镜像打成 tar 包,工程部直接导入成镜像,一键运行,还省的去 hub 拉镜像了,国内网络不太友好的。
    louisxxx
        16
    louisxxx  
       2024-05-10 21:43:49 +08:00
    springboot+mysql+redis+ng+前端
    每个服务独立一个容器才是 docker 正确使用方式
    DiamondYuan
        17
    DiamondYuan  
       2024-05-11 00:17:51 +08:00
    全都要


    1. 默认情况下 all in one , 这样只需要 docker run 就可以跑起来

    2. 新增 external database 环境变量,让用户可以用 docker-compose 单独把项目跑起来
    NaclFish
        18
    NaclFish  
       2024-05-11 00:46:15 +08:00
    演示感觉可以打包个虚拟机过去
    jiangzm
        19
    jiangzm  
       2024-05-11 00:54:23 +08:00
    既然是演示, 就不能访问远程演示吗,web 访问或者远程桌面都行
    dif
        20
    dif  
       2024-05-11 15:47:00 +08:00
    看需要,如果想一键部署启动,那就 docker compose ,如果互相不影响,那就用 docker 。 大规模的用 k8s 。
    反正我要是给别人写文档,如果快速启动我们的产品或者项目,我就写 docker-compose 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2720 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 06:56 · PVG 14:56 · LAX 23:56 · JFK 02:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.