前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Microservices工具箱- Docker

Microservices工具箱- Docker

作者头像
程序你好
发布2018-07-23 09:30:07
8720
发布2018-07-23 09:30:07
举报
文章被收录于专栏:程序你好

如果您想要进入微服务开发,您将希望在您的机器上运行多个东西。让服务、数据库、消息代理等在您的机器上工作而没有冲突可能是非常困难的。Docker完美地解决了这个问题。

Docker 和 Containers

那么,什么是docker,为什么它如此重要?Docker允许您在自己的机器上运行不同的软件……但是等等——难道您还不能那样做吗?是的,你可以,但不能像Docker那样方便。

您可能遇到过虚拟机,在您的机器上执行另一个操作系统的想法与您的机器完全分离。容器非常相似,而且大多数情况下更好!您有类似的分离级别(我们知道删除内容或处理端口冲突等有多难),但是操作系统层不会对每个容器(就像对虚拟机一样)进行整体复制。

看看这个图,希望能让大家明白:

一旦您安装了Docker,您将能够在您的计算机上以非常低的开销运行不同的软件。那么,为什么要等?现在就开始使用Docker吧 !

Getting Docker

那么,你是如何获得Docker的呢?有什么主要的先决条件吗?现在Docker在Windows、Mac和Linux上运行良好。安装说明可能有点不同,但是您可以在https://www.docker.com/community-edition上找到所需的大部分内容。Docker的社区版将很好地满足您的开发需求。有企业版本可用,但是这些版本要昂贵得多,并且对于本地开发来说不是必需的。

docker如何帮助您的开发

这是有趣的部分!我假设你已经安装了Docker(无论在哪个操作系统上,下面的操作都不会有什么影响!)假设您想在您的机器上运行MongoDB。您不再需要自己安装它。您可以从https://hub.docker.com/_/mongo/获得它——这是MongoDB的官方映像存储库。您可以按照这里提供的说明进行操作,可归结为如下操作:

$ docker run——命名为mongo -d mongo

这将把MongoDB的docker映像下载到您的机器上,并自动公开端口27017以便您进行连接。要做到这一点,您可以从文档中看到,您需要的是:

$ docker run --link some-mongo:mongo -rm mongo sh -c "exec mongo mongo $MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"

如果您想要连接应用程序并将其用作MongoDB——没问题!但是,我建议您首先阅读文档,了解您可能需要的任何配置。所以运行Mongo很好,但是它还能做什么呢?

  • Kafka – https://hub.docker.com/r/wurstmeister/kafka/
  • Distribution of Ubuntu – https://hub.docker.com/_/ubuntu/
  • Jenkins – https://hub.docker.com/_/jenkins/
  • PostgreSQL – https://hub.docker.com/_/postgres/
  • Apache Flink – https://hub.docker.com/_/flink/
  • Pretty much any technology you ever wanted to try
  • Run your microservices
  • 无论您想要什么都可以,您都可以创建自己的docker映像!

Docker和微服务

您已经看到Docker作为一种开发工具非常有用,但这还不是全部!Docker也非常适合部署应用程序。我遇到的最适合Docker的云之一是Digital Ocean。这个空间变化很快,所以如果您对部署Docker容器感兴趣,可以去网上搜索一下,看看哪个公司提供的服务最好。您可以使用AWS和Azure也没有任何问题。

实际上,对于生产系统,您可能不希望使用裸Docker容器。对于真正的微服务部署,您可能需要复制并轻松地扩展容器。

在写这篇文章的时候,我发现到有两种主流的解决方法:

Kubernetes -绝对令人惊叹的集装箱编配系统,诞生于谷歌的Borg项目

Docker群集- Docker本地解决编配问题的答案,比Kubernetes不成熟

Docker和容器还有很多。Docker不是一个开源项目,但是基于Docker的开源社区有很大的努力。如果您对这个领域感兴趣,那么Moby项目和Containerd是您的首选开源想法。这些可能成为未来的首选容器解决方案……

这是一个非常活跃的空间,所以我建议深入地学习它,留意任何变化。如果您想成为一名微服务开发人员(或者可能是任何服务器端开发人员),您将必须熟悉这些概念和技术。

总结

Docker是开发工作站上的一个很好的工具。它使您能够轻松地尝试和测试过去可能难以处理的技术和解决方案。除此之外,Docker和容器是在处理微服务时理解和使用的核心内容。Kubernetes和Docker集群等工具正变得越来越普遍。如果您想参与现代开发,您需要熟悉这些概念和技术。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Docker 和 Containers
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档