
有时候有些简单的应用,需要依赖很多服务,比如 Mysql redis 之类的 但是这些服务新手安装又有些难度,写 shell 脚本去安装又要考虑很多 Linux 发行版。
有没有一个简单的办法,把 docker 和 docker image 直接打包成一个 zip 或者 二进制文件,用户一运行,什么都有了,最好还能做些简单的管理。
1 lonelykid 2024-03-17 10:40:59 +08:00 二进制包不是也得考虑不同发行版吗?不用 Shell 可以用 Python ,现在很多 Linux 都默认自带 Python 环境。 |
2 momocraft 2024-03-17 10:46:01 +08:00 有 虚拟机镜像 |
3 tairan2006 2024-03-17 10:46:26 +08:00 shell 脚本为啥要考虑发行版?你用了 docker 就不需要考虑发行版了啊 |
4 Muniesa 2024-03-17 10:49:12 +08:00 via Android 用户一运行,什么都有了:把你要用的服务打包成镜像,写个脚本安装 docker 然后运行容器,不就可以了吗 |
5 mogita 2024-03-17 10:50:27 +08:00 你是不是在找 Docker Compose... |
6 billzhuang 2024-03-17 10:53:43 +08:00 via iPhone @ck65 hahahaha |
7 billzhuang 2024-03-17 10:54:17 +08:00 via iPhone 你把 image 暴露给用户? |
10 IdJoel OP @tairan2006 安装 mysql redis nsq 啥的需要考虑发行版啊 |
11 IdJoel OP @billzhuang 开源的程序啊,就是暴漏给用户的 |
13 phrack 2024-03-17 11:18:46 +08:00 via iPhone |
14 fregie 2024-03-17 11:21:59 +08:00 友情提示:op 说的 docker 镜像并非大家理解的 docker 镜像,而是 docker 程序本身的镜像 就是说他想要一个能在所有发行版上运行 docker 服务的方法 |
15 tairan2006 2024-03-17 11:24:40 +08:00 |
16 lonelykid 2024-03-17 11:25:02 +08:00 @IdJoel #8 MySQL 和 Redis 打包成 Docker 镜像,用 Python 安装配置 Docker 下载并运行相应镜像。镜像里的不用考虑发行版,Docker 网上都有相应脚本直接一键安装。Python 和 Shell 的作用其实都是一样的,都只是启动脚本而已,只是相比 Shell 脚本更易读,修改配置文件什么的更容易。 |
17 ETiV 2024-03-17 11:27:24 +08:00 via iPhone https://github.com/NilsIrl/dockerc dockerc - compile docker images to standalone portable binaries 没用过,你自己尝试下 |
18 clemente 2024-03-17 11:42:07 +08:00 docker save <image_name> > <二进制包.tar> |
19 0o0O0o0O0o 2024-03-17 11:43:21 +08:00 via iPhone 前几天看到的,就是楼上提到的 dockerc |
20 billzhuang 2024-03-17 12:01:10 +08:00 via iPhone 但你如果是个开源的服务,需要依赖 redis 、mysql 的话 ,但如果目标用户如果连 docker 安装都不会,他们怎么解决你系统的问题呢。 |
21 IdJoel OP @billzhuang 很多东西。例如游戏服务器 他们单纯就是想自己搭一分。根本不关心什么代码啊 |
22 0o0O0o0O0o 2024-03-17 12:45:31 +08:00 如果只是怕写 shell 脚本麻烦,其实 docker 提供了 https://github.com/docker/docker-install 其实,如果写 shell 脚本的麻烦都无法接受,你提到的这类操作会带来的麻烦只会更多吧? |
23 expy 2024-03-17 13:27:12 +08:00 参考各种 vps 一键 dd 重装系统脚本,做成系统镜像灌进去。 |
24 totoro625 2024-03-17 13:30:23 +08:00 写 shell 脚本自动安装 docker 并运行 Mysql redis 容器 用户只需要交互 shell 脚本就能控制容器 |
25 momocraft 2024-03-17 15:12:48 +08:00 或者学写 cloud-init yaml 很多云镜像都支持 用户创建虚拟机时指定你创建的 cloud-init yaml ,VM 创建好后自动运行,安装好所有东西 |
26 ytlm 2024-03-17 21:16:25 +08:00 docker export 和 chroot 命令研究一下试试 |
27 1daydayde 2024-03-17 22:59:34 +08:00 Snap 、Appimage 、Flatpak 等是不是你要找的 |
28 IdJoel OP @0312birdzhang 我研究研究,但是印象中这东西应该是针对一个应用开发的,不是针对应用 + 服务开发的 |
31 lniwn 2024-03-18 13:00:13 +08:00 via iPhone podman-compose |
35 blankmiss 2024-03-19 23:11:05 +08:00 只要是 linux 服务 就一定支持 dd 命 |