2017-05-03 82 views
1

2个问题在这里。AWS的Docker或Docker以及AWS EC2上的部署

我试图找出正常的DockerDocker for AWS之间的主要区别是什么。

对于我的项目,我将运行在Angular 2中编码的GUI,并将其封装在AWS EC2上的Docker容器中。

1)我应该为我的目的使用Docker for AWS吗?

2)Docker能否[1]从Github存储库获取我的代码并且[2]在运行docker时构建它?

3)什么是在AWS上部署Docker容器的最佳方式? 是否有指导要遵循或一些最佳实践示例?

预先感谢您!

回答

1

1)我应该为我的目的使用Docker for AWS吗?

泊坞窗为AWS通过CloudFormation提供自我修复基础设施。如果您的应用需要自动缩放,那么这是一条很好的路线。但是,成本会加起来。

2)Docker能否[1]从Github存储库获取我的代码并且[2]在运行docker时构建它?

使用GitHub web-hooks /集成,您可以通过Jenkins/Travis/ANOther CI工具为您创建图像。这可以将映像发布到Docker Hub或自我托管/第三方注册中心。

3)什么是在AWS上部署Docker容器的最佳方式是什么?有没有遵循的指南或一些最佳实践例子?

每个用例都不相同。这是为了测试吗?演示?生产?恐怕解决这个问题的因素太多了。

编辑:

3)这是一个演示porpuse此刻

我只是旋转了一个单一的EC2实例并安装泊坞窗引擎,并使用该

+0

感谢您的答复! 3)现在是Demos porpuse。 – sHamann

+0

只需使用一个EC2实例:) – Rawkode

+0

在我研究之后,可以构建我的角度2应用程序“build -prod”,并在AWS的S3上运行它们,是吗?这种方式比将此构建放在Docker-Container中并在EC2实例上使用web服务器nginx或node.js(哪个更好?)?什么是更具成本效益或不会使部署过程变得复杂? – sHamann

1

正如@Rawkode解释一切。我会在最后一点加上一些东西。 对于使用EC2实例上运行的基于泊坞窗的应用程序,你可以使用

部署Docker容器在Amazon EC2上集装箱服务(亚马逊ECS)

亚马逊EC2集装箱服务(亚马逊ECS)是亚马逊Web服务您用于在可伸缩群集上运行Docker应用程序。

您可以使用docker运行您的角度应用程序。正如你在评论中提到你可以使用ng build --prod。为您构建并创建文件夹012.您可以在AWS中部署基于角码docker的应用程序。

首先,创建一个快递服务器,它将为您的静态文件提供服务。

var express =  require('express'); 
    var path = require('path'); 
    var router = express.Router(); 
    var app = express(); 
    // serve angular front end files from root path 
    app.use('/', express.static('dist', { 
     redirect: false 
    })); 
    // rewrite virtual urls to angular app to enable refreshing of internal 
    pages 
    app.get('*', function(req, res, next) { 
     res.sendFile(path.resolve('dist/index.html')); 
    }); 

    app.listen(3000, function(req, res) { 
     console.log("start"); 
    }) 

所以这将成为您的角度静态文件和S3你将面临刷新,可以重新使用写入规则来解决的错误。 创造快递的码头工人文件,并表示将处理静态文件

FROM alpine 
RUN apk update && apk upgrade 
RUN apk add nodejs 
RUN mkdir -p /app 
ADD app/package.json /app 
WORKDIR /app/ 
ENV HOME /app 
ENV NODE_ENV development 
RUN npm install 
ADD app /app 
EXPOSE 3000 
CMD npm start 

应用程序所在的文件夹Express服务器文件,将文件夹DIST在同一个目录中。

现在部署搬运工基于应用程序访问此链接

https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/

最佳实务AWS托管Web应用程序

这上面我只是试图解释如何运行的角度应用在AWS ECS,您可以通过运行同一任务的多个副本并配置负载平衡器使其更好。

至于最佳做法是Web应用

关注对于静态应用

enter image description here enter image description here enter image description here

更多细节best-practices-for-hosting-web-applications-on-aws

泊坞窗和AWS已经联合起来,使在Amazon EC2基础架构上部署企业容器即服务(CaaS)Docker环境比以往更容易。在AWS上运行Docker Datacenter为开发人员和IT运营提供了一种高度可靠,低成本的方式,只需单击一下即可部署生产就绪的工作负载。

https://www.docker.com/aws

secrets-for-amazon-ec2-container-service

aws-for-startups-architectural-best-practices-automating-your-infrastructure