关于 docker 使用问题咨询

2019-06-28 11:08:22 +08:00
 sxw11

小菜鸟一枚,最近苦于配置各种环境,想学习一下 docker 的使用,有几个问题咨询一下大家

背景:

一个 web 应用包含以下几部分,授权服务,业务服务,数据库服务,RabbitMQ 服务,Logstash 服务,redis 服务,Elasticsearch 服务。

问题:

目前情况是每一个服务部署在单独的服务器( EC2 )上,管理起来很麻烦。

咨询:

那我是不是可以把每一个服务都放到一个 Docker 容器里面,放在一台大的机器或者直接托管在现有的云容器服务上,这种用法正确吗?

因为我们不需要大规模的拆分业务服务做分布式集群,用 Docker 是不是大材小用,有点困惑。 希望各位大佬给点意见,我这方面经验确实太少。

2661 次点击
所在节点    程序员
11 条回复
leorealman
2019-06-28 11:45:38 +08:00
Docker 只是提供了一个应用运行的环境,其实你用物理机、虚拟机、云主机都可以运行你的应用,只不过每次都要安装运行环境(解释器、依赖包等)。Docker 就是把安装运行环境给打包了,你可以为每个应用制作对应的 Docker 镜像,最主要的作用还是节省资源和方便快速迭代开发。
anubu
2019-06-28 11:54:06 +08:00
生产中是这么使用的。
每个服务一个容器,整个项目可以放在一个统一的 docker-compose 文件里管理。
不存在大材小用的问题,和分布式集群部署没有关系,任何需要做隔离部署的场景都可以考虑使用 docker。
你这边的迁移主要还是考虑性能问题,毕竟之前是每个服务独占服务器的。
sxw11
2019-06-28 12:04:50 +08:00
@leorealman @anubu 感谢大佬们指点
rqxiao
2019-06-28 13:11:37 +08:00
dokcer-compose 多容器编排就可以你的需求
pmispig
2019-06-28 13:55:40 +08:00
放在一台大的机器或者直接托管在现有的云容器服务上。后者基本上不行,前者勉强可以。但是你作为一个新手来说,也是墙裂不推荐你这样做的。一个不好,一个服务就把 CPU 占光,其他服务 GG
doco
2019-06-28 15:30:22 +08:00
我最近也在考虑这个事情...不过我的比较简单, 只有 nginx, node, mongodb 和 vpn, 主要是为了方便迁移, 不知道该每个应用都弄一个 docker 还是合到一起.
xfriday
2019-06-28 15:33:25 +08:00
上 k8s / swarm 容器编排
ri0day
2019-06-28 15:33:40 +08:00
第一,生产环境或不要把这些服务放在一个机器上,docker-compose 显然不适合你生产环境使用.
第二, 现在很少有单纯只用 docker 去跑一套企业级的应用 一般都是放在 kubernetes 上跑.
建议你先一步步来:
把你提到的这些组件先一个个迁移到 docker 上能运行
然后在测试环境用 docker-compose 把这些服务串起来
有了前面的知识积累,了解一下 kubernetes 的 pod/deploment /service /configmap/pvc /ingress 这些概念以后,最后把这些组件部署到 kubernetes 上.
abcdocker
2019-06-28 15:43:00 +08:00
之前写过一个 K8S 容器日志收集,你可以考虑一下。 将应用部署在 k8s 上
https://i4t.com/3642.html K8s 容器日志实时收集 FileBeat+ES+Kibana
https://i4t.com/3211.html K8S 企业集群
EasyProgramming
2019-06-28 15:44:22 +08:00
同 7 楼,推荐做容器编排
Chinsung
2019-06-28 15:44:29 +08:00
生产环境的话,最起码的防单点,也不适合你用 docker 全部署在一台机器上
你要是觉得依赖和环境配置麻烦,可以自己搞个 docker 的基板镜像,里面搞上环境依赖和应用,部署和你现在一样,每台机器跑个 docker
你要是觉得部署起来麻烦,手动步骤过多的和复杂的可以考虑自动化部署,或者想办法换一种部署方式和提升部署效率
像你这种,负载还可以的话,redis 和 mq 这两个可以放一台机器上,灵活的考虑吧

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

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

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

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

© 2021 V2EX