我构建了一个在AWS中运行的Docker镜像。
在Dockerfile中,我放了一些从某些网站下载某些来源的命令,所以很明显,如果这些网站出于某种原因导致产生该图像的新节点失败。
如何安全抵御这种风险?
有没有办法存储预构建的docker容器,可以在需要时部署到节点(例如,当应用程序需要扩展时),而不是每次都运行Dockerfile?
答案 0 :(得分:1)
在构建映像之后,docker不会重建它,直到dockerfile更改为止,因此新容器将继续使用原始映像并且不会从远程网站提取。
您还可以将Dockerfile添加到Docker hub这样的网站,这些网站将构建您的图像,并允许您将预构建图像下拉到您的计算机,而无需重建它们。
答案 1 :(得分:1)
当您使用AWS时,我会提及亚马逊的服务。
您将在EC2 Container Service上创建自己的注册表。 正如@ chris-tanner所提到的,您将上传您的Dockerfile,EC2将存储,构建并准备部署。还提供缩放,迁移和监控等功能。
访问EC2文档以开始使用。
答案 2 :(得分:1)
我认为您正在寻找docker push
命令。构建Dockerfile
时,docker会为以后运行的容器创建一个映像。检查docker images
。然后可以将这些图像上传到注册表。 Docker Hub为每个用户提供了一个免费存储库,因此您可以在那里上传图像。
你也可以像@ willian-paixao所说的那样使用容器服务。
Docker还有一个非常方便的命令docker save
。它会将您的图像保存在TAR文件中。然后您可以将其上传到S3。当您再次需要图像时,只需从S3下载它,然后制作docker load
。使用这种方法,您可以使用图像存储,而不需要使用注册表。
此致