gpt4 book ai didi

amazon-web-services - 用于生产 EC2 的 Docker

转载 作者:行者123 更新时间:2023-12-02 18:44:05 25 4
gpt4 key购买 nike

我是 Docker 的新手。

据我了解,它创建了可移植的环境来运行应用程序并将其发送到具有相同软件配置集的多个平台。这样,它也不会与您机器中的软件发生冲突。

我在开发中使用过 Docker,我知道它非常适合开发和与其他团队成员共享代码。每个人都得到一组不冲突的相同软件来运行。

现在,

我正在考虑在生产环境中使用 docker。在 EC2 上安装 docker,一切都将在 1 个命令中安装/配置。

但我有几个问题:

  1. 为什么我要在容器内的 EC2 中安装一些东西。我将只安装 1 个应用程序,并且不会发生冲突。它不会因为它在容器内而变慢并且 docker 中的任何问题都会破坏我的应用程序吗?如果我以某种方式销毁数据,我的数据会怎样?
  2. 我能否以某种方式使用 Docker,使应用程序不存在于容器内,而是直接存在于操作系统中?
  3. 我可以使用什么替代方法来一键部署我的小 flask 应用程序(数据库、nginx、 flask 、haproxy 等?它只是一个小应用程序,我不想让事情变得复杂和浪费金钱。开源欢迎解决方案。
  4. 互联网上充斥着似乎是行业标准且适用于大型应用程序/网站的文章。要学习的工具/技术太多。厨师,木偶, Jenkins ,库伯内特斯。对于小型网站,我是否能够在没有这些的情况下生活,或者它会成为前进的方向,我最终必须学习这些吗?

最佳答案

Why would I install something in EC2 inside container. I am going to install just 1 app and there's no chance of conflict.

是的,你是对的。如果您安装单个应用程序,则不会发生冲突。但是,有时您希望在同一台主机上运行多个应用程序。通常这样做是为了充分利用服务器的资源。此外,某些应用程序需要部署在同一台机器上才能正常运行。

Wont' it be slow as it is inside container

Here是一篇优秀的 2014 年 IBM 研究论文,题为“虚拟机和 Linux 容器的更新性能比较”,作者是 Felter 等人。它提供了裸机、KVM 和 Docker 容器之间的比较。总体结果是 Docker 的性能几乎与 Native 相同,并且在每个类别中都比 KVM 快。

and any issue in docker will break my app?

EC2 机器中的问题也会破坏您的应用程序。您的应用程序应该能够应对失败。这是在 Kubernetes 中部署您的应用程序的一个好处(它会在失败时自动重启您的容器)。

What will happen to my data if I destroy it somehow?

您可以在容器上安装卷,这些卷在容器被删除后仍然存在。这些卷可以存储在 EC2 机器文件系统或某些外部存储上。 (请记住,一切都可能发生故障。您应该始终备份您的数据。)

Can I use Docker somehow that app does not live inside container, but in OS directly ?

你不需要 Docker。

What alternative can I use to do deploy my small flask app in just 1 click ( database, nginx, flask, haproxy etc ?. It is just a small app and I do not want to complex things and waste money. Open source solutions are welcomed.

查看Docker Compose .它允许您使用单个命令部署由多个容器组成的应用程序。它是开源的,可以免费使用。(你也可以摆脱 Ansible、Chef、Puppet)你真的只需要其中之一。

Internet is full of articles which seem to be industry standard and are for big apps/websites. Too many tools/technologies to learn. Chef, puppet, jenkins, kubernetes. Will I be able to live without these for small websites or will it be the way forward and I'll have to learn these eventually?

早在这些工具发明之前,人们就能够开发和部署网站,所以您绝对可以做到!但是,如果没有这些工具,开发和运营必须可靠、高度可用和可扩展的应用程序就会变得更加困难。

应用程序必须的是一个良好的 CI/CD 管道,它可以自动构建、测试和部署您的应用程序。如果上述过程足够复杂,手动执行此操作很快就会失控。拥有良好的 CI/CD 管道可以让开发人员专注于编写新功能,而不是不断地管理流程的操作部分。它允许他们持续可靠地交付代码。 Jenkins、Chef、puppet、Ansible、Docker compose、Gitlab CI 和其他人试图解决这些确切的问题。然而,对于大多数应用程序,Jenkins 通常足以实现这一目标。

关于amazon-web-services - 用于生产 EC2 的 Docker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57349062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com