docker 项目资料全部打包

2024-05-10 16:07:53 +08:00
 RedBeanIce
我对于 docker 还是不太熟悉。
公司目前是单体服务,每个客户都是一套部署环境。

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

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

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

@Karte
@wunonglin
@juzisang
@iyiluo
RedBeanIce
2024-05-10 16:29:12 +08:00
@Karte 好的,,我挪一下位置去,,主要我还是个 javaer 为主。。
RedBeanIce
2024-05-10 16:29:40 +08:00
@Karte 过时间了,,,,超过 move 的时间了。。。
stille
2024-05-10 16:50:34 +08:00
用 docker compose
直接把 nginx 配置文件,mysql redis 等数据用 -v ./xxx 挂在到本地目录,压缩保存整个项目文件就行了。
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
2024-05-10 17:18:09 +08:00
肯定是 docker-compose 啊,docker 是单进程的。这意味着如果你全都打包在一起,有一个服务挂了,你不知道
javalaw2010
2024-05-10 18:00:45 +08:00
只以演示为目的的话,其实 fat container 的做法也是可以的,甚至硬要上生产跑也是可行的。

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

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


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

2. 新增 external database 环境变量,让用户可以用 docker-compose 单独把项目跑起来
NaclFish
2024-05-11 00:46:15 +08:00
演示感觉可以打包个虚拟机过去
jiangzm
2024-05-11 00:54:23 +08:00
既然是演示, 就不能访问远程演示吗,web 访问或者远程桌面都行
dif
2024-05-11 15:47:00 +08:00
看需要,如果想一键部署启动,那就 docker compose ,如果互相不影响,那就用 docker 。 大规模的用 k8s 。
反正我要是给别人写文档,如果快速启动我们的产品或者项目,我就写 docker-compose 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

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

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX