TiDB直接部署在Docker上是否可以

【 TiDB 使用环境`】生产
【 TiDB 版本】:5.0-5.2.2
【架构咨询】::
问题:TiDB直接部署在Docker是否可以?
直接部署一个空的容器,使用tiup 部署tidb 服务,是否可以?
因tidb 需要使用systemctl 管理,需要Docker 超级权限,需要
<1>开启systemd
<2>docker 运行添加参数:docker run -tid --privileged centos /usr/sbin/init
这样就可以了么?
会不会有什么运维问题?

  1. 没有推荐部署在 docker。不过,您这么考虑,只要你们能够确保 docker 不出问题就可以。
  2. 既然打算容器化,那么考虑公有云或者 operator 更好一些。

1、公有云是不能上,58这边体量比较大,当前是自建私有云的方式
2、tidb-operator 后面还会持续更新么?我看业界貌似没有用起来啊,且运维方式算是比较复杂,DBA需要推翻当前所有运维方式
3、普通的tidb部署在docker里面,这个官方没有测试过么?使用tiup管理

TiDB上私有云的有很多案例呀,社区最知名的,小米他们的 TiDB 集群就是上的 k8s,用的就是tidb operator 管理起来的。
专栏 - TiDB 在小米的落地及云原生探索 | TiDB 社区

【演讲资料下载】看神州数码、小米、斗鱼及ShardingSphere如何玩转开源数据架构 - TiDB 社区活动 / 活动回顾 - TiDB 的问答社区 (asktug.com)
这个里面有小米当时介绍的上云的解决办法。

你都在docker 里面跑 centos 了,跟多虚拟出多台机器跑 TiDB 没啥区别呀

1、小米这个我看看吧
2、如果是docker部署空容器,使用tiup管理,部署集群服务等,这样可以实现隔离,又兼容当前的DBA的自动化,而且相比tidb-operator的复杂性,这样搞比较简单,运维难度低,否则又要重构自动化,比较伤

在一般机器上官方的文档基本上一键部署。docker的没用过。感觉还是原生的方式好。毕竟容器是为了快速部署,而官方的已经达到了。数据库不像tomcat这种无状态的,随便。数据库能不放就不放吧。

可以参考k8s 部署方案。

在 Kubernetes 上部署 TiDB | PingCAP Docs