ElasticBeanstalk:存放一个防弹的docker集装箱
我构build了一个在AWS中运行的Docker镜像。
在Dockerfile中,我放置了一些从某些网站下载某些源代码的命令,很明显,如果这些网站出于某种原因正在生成一个运行该映像的新节点将会失败。
我怎样才能避免这种风险?
有没有一种方法来存储预构build的Docker容器,可以在需要时(例如,当一个应用程序需要扩展时)部署到一个节点上,而无需每次运行Dockerfile?
我认为你正在寻找docker push
命令。 当你build立你的Dockerfile
, Dockerfile
为以后运行的容器创build一个映像。 检查docker images
。 然后这些图像可以上传到registry。 Docker Hub为每个用户提供一个免费的存储库,所以你可以在那里上传图片。
也可以用@ willian-paixao说的容器服务。
Docker也有一个叫docker save
的非常方便的命令。 它会将你的图像保存在TAR文件中。 然后你可以把它上传到S3。 当你再次需要镜像时,只需从S3下载,然后build立docker load
。 有了这种方法,你有你的图像存储,不需要使用registry。
问候
在你build立一个图像之后,docker不会重build它,直到dockerfile发生变化,所以新的容器将继续使用原始图像,并且不会从远程网站中获取。
您还可以将Dockerfile添加到像Docker hub这样的站点,它将构build您的映像,并允许您将预构build映像下载到您的机器,而无需重新构build它们。
在您使用AWS时,我会提到Amazon的服务。
您将在EC2容器服务上创build您自己的registry。 正如@ chris-tanner提到的,你将要上传你的Dockerfile,EC2将存储,构build并准备好部署。 还可提供规模,迁移和监测等function。
访问EC2文档入门。
- 如何在Elastic Beanstalk中增加Docker中的ulimit?
- AWS ECS任务 – angular度构build不会停止运行
- 在EC2上的Docker,dockerfile中的RUN命令不能读取环境variables
- 你如何在一个部署为弹性beanstalk工作的docker集装箱共享特权信息?
- 从私有Docker仓库将映像部署到AWS Elastic Beanstalk
- AWS Elastic Beanstalk Docker环境variables
- 在Elastic Beanstalk上强制HTTPS单容器泊坞窗应用程序
- 使用AWS Application Load Balancer的Websocket超时
- Docker卷指向文件的弹性beanstalk