如果我移动Elastic Beanstalk应用程序以使用Docker,是否需要自己的服务器?
我有一个工作的Elastic Beanstalk,Django应用程序,但由于几个原因,我想从使用预configuration的Python平台,转到使用通用的Docker平台。
在EB中使用一个真正的应用程序使用Docker的文档或示例非常less,所以我不清楚是否移动到Docker,我也需要pipe理服务器,这意味着我的Docker映像将需要它自己的Apache / nginx服务器在我的django设置之上,或者如果EB仍然将它的apache服务器和EC2实例上的docker镜像放在一起。 换句话说,我的docker图像上的最后一个CMD是一个简单的“python manage.py runserver”typescmd?还是一些“supervisord -n”?我需要一个类似于https://github.com/dockerfiles/django的图像-uwsgi-nginx / blob / master / Dockerfile ?
谢谢
你发布的链接是一个很好的开始,并且是functionEB / Docker / Django设置的一个非常好的草图。 也请看https://github.com/AndrewSmiley/django-docker-eb (使用gunicorn而不是nginx / uwsgi)。 实际上你需要在你的Docker容器中运行一些服务器 – 这个服务器(你链接到的例子中的nginx)就是让你的Docker容器和运行它的EC2实例通信。
如果你看一个典型的Dockerfile,那么在某个时候,你正在使用EXPOSE
来使一个端口对外界可见。 ElasticBeanstalk将在此端口上与您的容器进行通信,因此您的容器需要自己的某种内部服务器来与这些请求进行交互。 ElasticBeanstalk会在EC2实例(我相信nginx)上安装自己的外部服务器,它将stream量引导到您的容器。 换句话说:Net < – > EC2实例< – > EB web服务器< – > Docker < – >您的容器中的服务器< – >您的应用程序
虽然你可以设想运行python manage.py runserver
作为你的Docker CMD
,但是它设置的web服务器并不适合生产。 这就是为什么您链接的图像使用supervisord运行更多生产就绪的web服务器configuration。 不过,在这两种情况下,您都在Docker容器中运行服务器!
如果Elastic Beanstalk包含您所需的所有应用程序,数据库和其他服务,Elastic Beanstalk将会成为您的“服务器”。 它仍将运行EC2实例,但不需要直接pipe理它们。
- Elastic Beanstalk本地环境(与Docker)连接被拒绝
- Django +docker到弹性豆茎
- 在AWS EBS microservice docker环境中使用Kafka,以避免丢失用户请求并处理更多并发点击
- 如何将docker-compose.yml转换为Django的Dockerrun.aws.json
- debuggingElastic Beanstalk Docker运行失败?
- 如何在单个容器Docker环境上的Amazon Elastic Beanstalk上部署Rails应用程序
- AWS Docker Golang。 'eb deploy'错误
- Elastic Beanstalk泊坞窗错误
- replaceAWS Elastic BeanStalk上的特定实例?