Docker或Docker for AWS和AWS EC2上的部署
2个问题在这里。
我试图找出什么是普通的Docker
和Docker for AWS
之间的主要区别。
对于我的项目,我将运行在Angular 2中编码的GUI,打包在AWS EC2上的Docker容器中。
1)我应该使用Docker for AWS来达到我的目的吗?
2)是否有可能,Docker可以[1]从Github存储库获取我的代码,[2]在运行docker时构build它?
3)什么是在AWS上部署Docker容器的最佳方式? 有没有遵循的指南或一些最佳实践的例子?
先谢谢你!
1)我应该使用Docker for AWS来达到我的目的吗?
Docker for AWS通过CloudFormation提供自我修复的基础架构。 如果您的应用程序需要自动缩放,那么这是一条很好的路线。 但是,成本会加起来。
2)是否有可能,Docker可以[1]从Github资源库获取我的代码,[2]在运行docker时构build它?
使用GitHub网页挂钩/集成,您可以通过Jenkins / Travis / ANOther CI工具为您创build图像。 这可以将映像发布到Docker Hub或自我托pipe/第三方registry。
3)什么是在AWS上部署Docker容器的最佳方式? 有没有遵循的指南或一些最佳实践的例子?
每个用例都是不同的。 这是testing吗? 演示? 生产? 恐怕解决这个问题太多了。
编辑:
3)现在是Demos porpuse
我只需要启动一个EC2实例并安装docker-engine并使用它
正如@Rawkode解释一切。 我只是想补充一点你的最后一点。 对于使用ec2实例运行基于Docker的应用程序,您可以使用
在Amazon EC2容器服务(Amazon ECS)上部署Docker容器
Amazon EC2容器服务(Amazon ECS)是用于在可伸缩群集上运行Docker应用程序的Amazon Web Service。
你可以使用docker运行你的angular度应用程序。 正如你在评论中提到你可以使用ng build --prod
。 为您构build和创builddist文件夹。以下是我如何在AWS中部署基于angular码docker的应用程序。
首先,创build一个将服务于你的静态文件的快递服务器。
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"); })
所以这将为您的angular度静态文件和S3
你将面临刷新错误,可以使用重新写入规则解决。 创build您的docker文件为快递和快递将处理静态文件
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
里面的应用程序文件夹中的快递服务器文件,将dist文件夹放在同一目录。
现在要部署您的基于Docker的应用程序,请访问此链接
https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/
在AWS上托pipeWeb应用程序的最佳实践
以上我只是试图解释如何在AWS ECS上运行angular度应用程序,并且可以通过运行同一任务的多个副本并configuration负载平衡器来使其更好。
至于最佳实践是关于Web应用程序
对于静态应用程序
更详细的最佳实践,托pipenetworking应用程序
Docker和AWS联合起来,在Amazon EC2基础架构上部署企业容器即服务(CaaS)Docker环境比以往更容易。 在AWS上运行Docker Datacenter为开发人员和IT运营提供了一种高度可靠,低成本的方式,只需单击一下即可部署生产就绪的工作负载。
秘密换亚马逊EC2容器服务
AWS换初创的build筑-最佳实践-自动化-您的基础设施
- 如何从Elastic Beanstalk实例访问S3存储桶中的dockerconfiguration文件
- 在Dockerfile FROM参数中使用–build-arg值
- Angular 2应用程序部署在AWS上运行的Docker容器中
- Rancher EBS卷装
- 在新的EC2 Jenkins Slave上首次执行Docker不起作用
- DOCKER:在docker运行后,在容器中执行一次性命令
- 将GitLabregistry连接到AWS上的ECS – 花费太长时间来响应
- 从docker-compose到AWS
- 失败(404错误)通过AWS EBS泊坞窗环境中的Nginx访问Amazon Linux API泊坞窗服务