V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sxw11
V2EX  ›  程序员

关于 docker 使用问题咨询

  •  
  •   sxw11 · 2019-06-28 11:08:22 +08:00 · 2691 次点击
    这是一个创建于 2005 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    背景:

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

    问题:

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

    咨询:

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

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

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