我对Docker很新,并且有一些非常基本的问题。我无法在其他地方澄清我的怀疑,因此在此发布。如果查询非常明显,请原谅我。我知道我对图像缺乏一些基本的了解,但我很难找到一些容易理解的解释。
手头的问题:
我的应用程序在EC2节点上运行(r4.xlarge)。它是一个Web应用程序,具有很多依赖项(系统依赖项+其他库等)。我想创建一个我的机器的docker镜像,以便在我启动新的EC2实例时可以轻松地运行它。
问题:
前:
yum install gcc
yum install gfortran
wget <abc>
当我创建一个docker文件时,是否需要指定上面的所有安装说明?我认为创建图像就像是拍摄现有机器的副本。在这种情况下,docker文件应该具有什么?
指出一些好的文档,在EC2上为依赖的Web应用程序构建一个docker镜像也非常有用。
提前致谢。
答案 0 :(得分:1)
FROM
答案 1 :(得分:1)
首先,如果您想转向docker,我建议使用专为docker容器设计的AWS ECS,并具有自动扩展和负载均衡功能。
关于你的问题是关注所以
为何选择阿尔卑斯山? Alpine将自己描述为:
小。简单。安全。 Alpine Linux是一个面向安全的, 基于musl libc和busybox的轻量级Linux发行版。
https://nickjanetakis.com/blog/the-3-biggest-wins-when-using-alpine-as-a-base-docker-image
https://hub.docker.com/_/alpine/
假设我的应用程序需要安装服务器X + 20系统 依赖项+其他10个库。
所以你需要制作需要你提到的所有这些的dockerfile。
我将再次建议使用ECS作为最佳基于docker的应用程序,因为这是为docker设计的ECS,而不是EC2 。
集中一切
Amazon ECS可让您轻松构建所有类型的 容器化应用程序,来自长期运行的应用程序和 微服务到批处理作业和机器学习应用程序。您可以 将旧版Linux或Windows应用程序从本地迁移到 云并使用Amazon ECS将其作为容器化应用程序运行。
https://aws.amazon.com/getting-started/tutorials/deploy-docker-containers/
https://caylent.com/containers-kubernetes-docker-swarm-amazon-ecs/