【问题标题】:running a docker loop device on aws在 aws 上运行 docker loop 设备
【发布时间】:2015-10-16 13:07:07
【问题描述】:

我是 aws 新手,在让我的移动应用重新运行时遇到了一些问题。如果这个问题看起来含糊不清,请见谅。

对于一个学校项目,我们在 aws 上创建了一个移动应用程序,并使用 docker 容器进行了部署(另一个学生管理了这些任务)。当试图让我自己的密钥对通过 ssh 进入我的 ec2 实例时,我分离了与我的实例关联的卷,并在获得我自己的密钥对后重新连接它。现在我可以 ssh 进入我的实例,但我的前端无法与我的 Web 服务器通信。

所以我的问题是,我是否要在弹性 beanstalk 上创建一个新应用程序来部署我的应用程序?即使当我运行 lsblk 时显示有一个 docker 循环设备,当我运行 docker 图像时,我看到几个与我的应用程序名称匹配?还是我以某种方式让容器再次运行,docker run 似乎没有工作。

【问题讨论】:

    标签: amazon-web-services web-applications amazon-ec2 docker amazon-elastic-beanstalk


    【解决方案1】:

    不需要,只需将新更新上传到 Elastic Beanstalk。 AWS 将处理剩下的事情。

    仅供参考,Elastic Beanstalk - 单个 Docker 容器更新过程(底层简单):

    1. 您将更新上传到 AWS。
    2. AWS 会将其放在您的 S3 上。
    3. 在您的 EC2 内部,有一个 Elastic Beanstalk 代理。它将检查是否有新的更新。
    4. 如果有更新,代理会下载更新文件并解压。
    5. 代理将构建一个新的 Docker 映像。
    6. 如果构建成功,它将生成一个新配置来告诉 Nginx(网络代理)新的网络服务器容器。
    7. Nginx 将被重新加载。
    8. 您的旧 docker 容器将被销毁。

    不要更改 Elastic Beanstalk 的 EC2 内部的任何内容,除非您知道自己在做什么。 Elastic Beanstalk 专为自动化部署和扩展而设计。因此,如果您手动更改 EC2 中的某些内容,它可能会丢失。当然,您可以修改您的 EC2 实例,但您需要使用 .ebextensions 将其自动化或拍摄图像。

    【讨论】:

    • 非常感谢,这非常有帮助。我对部署/上传 docker 容器很好奇。我们通过 jenkins 进行自动化构建,将 docker 镜像推送到 docker hub。或者项目文档建议从推送到集线器到更新 aws 进行某种自动化,但我没有看到它是如何工作的。我的机器上有我的工件,但我不认为这是我应该上传的(它是一个 .jar 不是 .war,我正在通过 intellij 上的 scala 而不是 eclipse 进行开发)。我的问题是,a)我如何完成上述答案的第 1 步,b)jenkins 是否只是用于生成 jar 文件?
    • 您是否在 Elastic Beanstalk 中创建了单 Docker 容器环境?如果您已经有一个,只需将您的 Dockerfile (scala) + 您的 *.jar 上传到 Elastic Beanstalk Web 控制台。
    • 如果您想使用 Jenkins 自动化部署,您可以查看 this 帖子。我建议您先手动将其部署到 Elastic Beanstalk 中,然后再使用 Jenkins 将其自动化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2017-12-17
    • 2012-01-05
    • 2015-08-30
    • 2019-03-27
    • 2020-05-29
    • 1970-01-01
    相关资源
    最近更新 更多