docker 项目资料全部打包

234 天前
 RedBeanIce
我对于 docker 还是不太熟悉。
公司目前是单体服务,每个客户都是一套部署环境。

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

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

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

@Karte
@wunonglin
@juzisang
@iyiluo
RedBeanIce
234 天前
@Karte 好的,,我挪一下位置去,,主要我还是个 javaer 为主。。
RedBeanIce
234 天前
@Karte 过时间了,,,,超过 move 的时间了。。。
stille
234 天前
用 docker compose
直接把 nginx 配置文件,mysql redis 等数据用 -v ./xxx 挂在到本地目录,压缩保存整个项目文件就行了。
chuck1in
234 天前
这么看起来我这个项目真是为 op 量身定做的。。。

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

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

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

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

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

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


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

2. 新增 external database 环境变量,让用户可以用 docker-compose 单独把项目跑起来
NaclFish
233 天前
演示感觉可以打包个虚拟机过去
jiangzm
233 天前
既然是演示, 就不能访问远程演示吗,web 访问或者远程桌面都行
dif
233 天前
看需要,如果想一键部署启动,那就 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