不懂就问,关于 Docker 的一些疑惑。

2019-09-20 14:05:37 +08:00
 aerzha

最近在学习 Docker 相关的知识,准备拿自己家里的小破服务器练练手,有个问题一直困扰我,希望各 V 友不吝赐教。

PS:本人不懂后端,有可能描述不当或理解错误的地方,见谅。

构建 Docker 容器时,应该按什么粒度来构建?

来个例子说明下:

在一台服务器上,部署 A 和 B 两个依赖 LNMP(以 P 为例,A 依赖 Python2,B 依赖 Python3),应该按下面哪种方式部署比较好呢:

  1. 两个 Ubuntu 的 Docker 容齐,然后每个里面都安装对应版本 Nginx,MySQL,Python。
  2. 服务器本机安装 LNMP,然后 A,B 容器通过 docker 数据卷使用环境。
  3. 创建 Nginx 容器,MySQL 容器,Python2 容器,Python3 容器..., 然后通过容器互联来使用环境。

或者上述方法都不对,那有没有什么最佳实践方式? (家用服务器 /个人服务器环境下)

6092 次点击
所在节点    Docker
15 条回复
blackeeper
2019-09-20 14:25:20 +08:00
明显是 3 啊,官方给的建议就是:单个应用程序就是一个 docker 容器。当然很特殊的应用程序除外。
huxins
2019-09-20 14:28:34 +08:00
看想用 docker 干哈,快速部署,环境隔离,集群扩容,根据需求来
jaynos
2019-09-20 14:28:58 +08:00
同上, 除特殊情况下应该一个容器内只包含一个服务. 然后通过 docker-compose 来让容器互联
chairuosen
2019-09-20 14:31:44 +08:00
3。 一般大规模应用 docker 的企业,nginx,mysql,python,分别由不同部门负责。没有这种都打进一个镜像的场景。
aerzha
2019-09-20 14:31:53 +08:00
@huxins 没那么高大上,仅想用家用服务器,折腾下 workpress,nextcloud 之类的
aerzha
2019-09-20 14:34:32 +08:00
@chairuosen 多谢,那服务器是全部 docker 化好些呢,还是部分选择 docker 化呢,比如 minidlna 有没有必要用 docker,选择是否 docker 的标准是什么
chairuosen
2019-09-20 14:46:39 +08:00
@aerzha 我觉得是无状态 /需要水平扩展的服务都适用于 docker,当然也有人用 docker 装 mysql,没搞过不太懂。
wly19960911
2019-09-20 14:52:07 +08:00
@chairuosen #7 这个是用 volumn 挂载数据进去的,很容易,也不需要管依赖,平时也一样用。
mikeguan
2019-09-20 15:01:28 +08:00
现在的 lnmp 的 p 是指 Python 了吗?

算了,还是世界和平吧
EricXuu
2019-09-20 15:07:54 +08:00
@mikeguan #9 php 是世界上最好的语言
BlackHole1
2019-09-20 15:09:54 +08:00
3
aerzha
2019-09-20 15:20:59 +08:00
@mikeguan 哈哈,这俩我都不懂,因为我只知道 Python 分两个版本,才拿出来举例,要是 PHP 也有多个版本,当然就是选择世界上最好的语言了
AnnieHall
2019-09-20 15:29:53 +08:00
自己玩 docker compose 挺合适的
aerzha
2019-09-20 15:34:50 +08:00
@chairuosen 举个例子,docker 安装 nextcloud,直接“docker pull docker.io/nextcloud”命令,这种方式是不是容器中就包含了 LNMP,要想把 Nginx,MySQL 等分离,就要使用 docker compose ?
chairuosen
2019-09-20 16:10:19 +08:00
@aerzha 前半句对,这个镜像貌似是打包好了所有依赖服务。后半句,如果你想把 nginx mysql 放在 docker 里用,并且和业务代码一起打包成一个完整的服务,让别人一键安装启动好。就用 docker compose。 但是,个人理解,这种场景较少,一般是你开发一套东西,想让另一个人在完全不熟悉的情况下跑起来。适用于企业级卖软件,个人接私活。 运行时想 debug 或者调调参数不方便。 实际互联网公司自己产品没这样部署的。

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

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

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

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

© 2021 V2EX