我是码头新来的。
据我所知,它创建了一个可移植的环境,可以运行并将应用程序发送到具有相同软件配置集的多个平台。这样,它也不会与您的机器中的软件冲突。
我在开发中使用了Docker,并且理解它对开发和与其他团队成员共享代码非常有益。每个软件都有一套不冲突的软件可供运行。
现在,
我正在考虑在生产中使用码头。在EC2上安装对接器,一切都将在1命令中安装/配置。
,但我有几个问题:
发布于 2019-08-04 19:24:22
为什么我要在容器内的EC2中安装一些东西。我将只安装一个应用程序,没有冲突的机会。
是的,你是对的。如果你安装了一个应用程序,就没有冲突的可能。但是,有时您希望在同一台主机上运行多个应用程序。这通常是为了充分利用服务器的资源。此外,一些应用程序需要部署在同一台机器上,才能正常工作。
会不会慢一点,因为它在容器里
这里是一篇出色的2014年IBM研究论文,名为“虚拟机和Linux容器的最新性能比较”,由Felter等人撰写。这提供了裸金属、KVM和Docker容器之间的比较。一般结果是,Docker几乎与本机性能相同,并且在每个类别中都比KVM更快。
码头的任何问题都会破坏我的应用程序吗?
EC2机器的一个问题也会破坏你的应用程序。你的应用程序应该对失败有弹性。这是在Kubernetes中部署应用程序的一个好处(它将在失败时自动重新启动容器)。
如果我以某种方式销毁了我的数据会发生什么?
您可以在容器上挂载卷,该卷将在删除容器后保持不变。这些卷可以存储在EC2机器文件系统上,也可以存储在某些外部存储上。(请记住,每件事都有可能发生。你应该随时备份你的数据。)
我可以使用Docker,不知为何,这个应用程序不存在于容器中,而是直接存在于OS中吗?
你不需要码头工人。
我能用什么替代方法来部署我的小烧瓶应用程序,只需一次点击(数据库,nginx,烧瓶,haproxy等)?这只是一个小应用,我不想复杂的事情和浪费金钱。欢迎开源解决方案。
调查码头组成。它允许您使用一个命令部署由多个容器组成的应用程序。它是开放源码和免费使用。(你也可以和Ansible,Chef,Puppet一起逃脱)你真的需要其中之一。
互联网上充斥着一些似乎是行业标准的文章,都是针对大型应用/网站的。有太多的工具/技术值得学习。厨师木偶詹金斯库伯奈特斯。对于小型网站来说,我是否能够在没有这些信息的情况下生活,或者这将是一条前进的道路,我最终将不得不学习这些?
早在这些工具发明之前,人们就已经能够开发和部署网站了,所以你绝对可以做到!然而,如果没有这些工具,开发、操作和应用程序就变得更加困难,而这些应用程序必须是可靠的、高度可用的和可伸缩的。
对于一个应用程序来说,必须是一个,它是一个很好的CI/CD管道,可以自动构建、测试和部署应用程序。如果上面的过程足够复杂的话,手动完成这些操作会很快失控。有了良好的CI/CD管道,开发人员就可以专注于编写新特性,而不是不断地管理流程中的操作部分。它允许他们连续可靠地交付代码。詹金斯,厨师,木偶,无名氏,码头作曲,Gitlab CI和其他人试图解决这些确切的问题。然而,对于大多数应用程序来说,Jenkins通常都足以实现这一点。
发布于 2019-08-15 01:19:29
我一直在使用码头为客户在金融部门生产人工智能解决方案。
为什么我要在容器内的EC2中安装一些东西。我将只安装一个应用程序,没有冲突的机会。会不会很慢,因为它是在容器和任何问题在码头将破坏我的应用程序?如果我以某种方式销毁了我的数据会发生什么?
尽管您可以在您的EC2中管理码头,但标准的(更好的)实践是使用kubernetes或码头群在两个EC2节点上自动管理它。AWS为此提供了一些服务。
因为docker直接在主机的内核上运行您的进程,所以不会出现明显的性能问题。对于I/O,您应该使用目的构建的坞卷(这与下一点有关)。
如果你摧毁一个容器,它里面的所有数据都会消失。为了防止这种情况,您可以使用停靠卷。由于您知道您的应用程序将在哪里写入数据,所以您知道在哪里挂载它们。
我可以使用Docker,不知为何,这个应用程序不存在于容器中,而是直接存在于OS中吗?我能用什么替代方法来部署我的小烧瓶应用程序,只需一次点击(数据库,nginx,烧瓶,haproxy等)?这只是一个小应用,我不想复杂的事情和浪费金钱。欢迎开源解决方案。
请参见上面的。进程直接在主机的内核中运行。数据应该转到坞卷。使用docker(这是一次在指定的配置中部署多个容器的短手)。是开源的.
互联网上充斥着一些似乎是行业标准的文章,都是针对大型应用/网站的。有太多的工具/技术值得学习。厨师木偶詹金斯库伯奈特斯。对于小型网站来说,我是否能够在没有这些信息的情况下生活,或者这将是一条前进的道路,我最终将不得不学习这些?
是的,但它们的存在是有原因的。他们抽离了你的一些痛点。如果您的小型webapp是可管理的(并且不那么痛苦),您可以自己管理EC2上的对接程序(甚至可以像2000年代那样将裸金属应用程序放在EC2之上)。然而,随着应用程序变得越来越复杂,您可能会观察到更多的痛点,并根据您的痛点使用特定的工具。厨师,PUppet,Jenkins,Kubernetes (和Openshift)有多个重叠区域。你不需要所有的。取决于你的痛点,你可以只用一两个(使用全部,在我看来有点疯狂)。
https://stackoverflow.com/questions/57349062
复制相似问题