万物皆 docker 部署,真的有必要吗?

2025 年 8 月 21 日
 cmos

openlist这类无依赖的单文件程序,用docker部署是为了什么?不应该遵循 FHS 规范,安装到/opt/openlist并使用systemd管理吗?

但是我在实际接触中发现,为了MySQL/Nginx性能,实际上docker部署的没几个,反而openlist这种web应用大多是docker部署。

6174 次点击
所在节点    Docker
52 条回复
zhangfeiwudi
2025 年 8 月 21 日
方便统一迁移,标准化 , 标准化很重要,不管你是什么 openlist 还上 closelist 都是一个 dockerfile 的事儿, 方便快速 扩容大批量的 pod 和迁移整体集群
totoro625
2025 年 8 月 21 日
docker 用户不在意性能损失,在意的是灵活部署,一键使用,删除方便,环境隔离
简单的比喻就是,iOS 安装软件删除就全没了(此处不谈钥匙串),安卓安装软件删除还残留一些配置

nginx 为例:
在意性能肯定直接安装
但是安装完在/etc/nginx 目录下一堆配置,不小心改错配置,卸载重装后问题还在,docker 安装则没有问题
andyskaura
2025 年 8 月 21 日
这就和豆腐脑应该是咸的还是甜的一样。数据库可以 docker 部署吗?
duanxianze
2025 年 8 月 21 日
分情况,假如是 saas 的应用,客户的服务器,系统什么的并不统一,用 docker 自然好,又或者分布式快速扩容,用 docker 也挺好,不能一概而论
peteretep
2025 年 8 月 21 日
docker 标准化后,可以使用 docker-compose 或者 k8s ,进行更同意快捷的管理
单服务安装就没有更进一步的手段了

在业务部署数量随时间膨胀的的情况下,选一个长久的方案是合理的

如果是小玩具服务无所谓
wangxiang
2025 年 8 月 21 日
装完就觉得系统不干净了,只能重装系统
superrichman
2025 年 8 月 21 日
你以为是单文件,其实还是用到了系统的 so 文件的。

ldd ./openlist
linux-vdso.so.1 (0x00007f9c78298000)
libresolv.so.2 => /usr/lib/libresolv.so.2 (0x00007f9c7824e000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f9c78249000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f9c78244000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f9c78000000)
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007f9c7829a000)

最经典比如 gilbc 的版本问题,这个是报错最多的。你不知道用户会在什么环境里用,有的版本高了,有的版本低了都不行,直接无法启动。

docker 用来保证所有用户都在一个环境里运行,软件依赖版本都一致。
89adc64
2025 年 8 月 21 日
@andyskaura 可以的
cmos
2025 年 8 月 21 日
@andyskaura 3#
打~起~来~了~
cmos
2025 年 8 月 21 日
@superrichman 7#
openlist 有 musl 版本,兼容性问题倒是不大。
pdone
2025 年 8 月 21 日
docker 迁移特方便 持久卷 + compose.yml 复制走 随便找个架构相同的机器就又跑起来了 喜欢折腾 nas 的朋友太喜欢了
shakaraka
2025 年 8 月 21 日
容器化的好处太多了,真要性能不好加机子就行了
shakaraka
2025 年 8 月 21 日
之前都有个 macos 的 docker 镜像可以跑。是真的 Mac OS 。

好像也有 Windows 的
Leeeeex
2025 年 8 月 21 日
因为 docker 一个配置文件就能跑起来了,我要换一台机器的话把配置文件移过去就可以了
但是其他的安装不行,一会配置这个地方,一会配置另一个地方,而且搞错了还不知道怎么回退,我不太了解 Linux 系统,这种对我来说是最方便的
Dorathea
2025 年 8 月 21 日
@andyskaura
当然可以, 把数据和配置目录映射到主机上就行
defunct9
2025 年 8 月 21 日
完全没必要
Reficul
2025 年 8 月 21 日
> 但是我在实际接触中发现,为了 MySQL/Nginx 性能,实际上 docker 部署的没几个。

首先这个前提就不成立,MySQL / Nginx 跑容器里的海了去了。 其次为什么有性能问题,有多少损失?
NoobNoob030
2025 年 8 月 21 日
喜欢简单一把梭,全部都用 docker 减少心智负担
evill
2025 年 8 月 21 日
额,不懂为什么会有觉得 docker 会丢失性能,以及不能部署数据库
docker 只是把 namespace 和 cgroup 集合起来对外提供统一功能而已,实际上还是 container

在部署层面上 docker 与 systemd 、pm2 甚至 nohup 并没有区别,只是托管进程
itechify
2025 年 8 月 21 日
统一规范 个人部署 尽量 all in docker ,portainer 等面板上去拉镜像就运行起来了,持久化只需要挂在
不用 ssh 上去编写 systemd service ,不用 apt install ,不用编译。。。

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

https://study.congcong.us/t/1153902

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

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

© 2021 V2EX