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

15 天前
 imes

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

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

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

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

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

如果是小玩具服务无所谓
wangxiang
15 天前
装完就觉得系统不干净了,只能重装系统
superrichman
15 天前
你以为是单文件,其实还是用到了系统的 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 用来保证所有用户都在一个环境里运行,软件依赖版本都一致。
NightFlame
15 天前
@andyskaura 可以的
imes
15 天前
@andyskaura 3#
打~起~来~了~
imes
15 天前
@superrichman 7#
openlist 有 musl 版本,兼容性问题倒是不大。
pdone
14 天前
docker 迁移特方便 持久卷 + compose.yml 复制走 随便找个架构相同的机器就又跑起来了 喜欢折腾 nas 的朋友太喜欢了
wunonglin
14 天前
容器化的好处太多了,真要性能不好加机子就行了
wunonglin
14 天前
之前都有个 macos 的 docker 镜像可以跑。是真的 Mac OS 。

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

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

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

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

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

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

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

© 2021 V2EX