我计划在Docker上使用ECS为Web服务构建一个环境 但是我遇到了麻烦,因为我不知道如何处理Docker中的操作系统。
我听说为Docker的一般构建每个服务单独构建Docker是很常见的
起初,有一个Docker收集了Docker,想象出为每个角色创建了Docker(服务器,DB,Redis ......)。
如果这样做,如果你将每个角色的Docker操作系统设置为通用LinuxOS(例如CentOS),它似乎只会因操作系统内存容量而大幅增加。
我刚刚意识到有一个名为CoreOS的紧凑型操作系统。
然后有疑问 Docker的操作系统是否可以为每个角色设置为CoreOS? 我到目前为止所写的假设是否常见?
如果你能回答它会很有帮助。
答案 0 :(得分:0)
我不确定我是否理解这个问题,但您似乎误解了Docker镜像的“图层”。
只要您知道如何为该容器操作系统安装和管理服务,基本操作系统就不那么重要了。
对于最小的基本图像,您可以选择Alpine或CoreOS。对于可能与您的生产系统匹配的更实质的操作系统,您可以选择Debian,CentOS或Ubuntu。
如需更多阅读,请参阅Elasticsearch switched to CentOS as a base。
当您可以使用apt
或yum install
仅通过OS内存容量显着增加
每台机器仅一次(假设在群集/群组中运行)。例如,如果您在Web应用程序和Redis Docker映像之间共享基本CentOS映像,则只会创建用于构建相应应用程序的额外层。
对于视觉,让我们假设我有一个Python(或Ruby,Node,Golang等)Web应用程序,使用相同语言编写的CLI实用程序,以及在一台机器上构建的数据库映像。您将构建一个通用的Python层,然后将其扩展到Web和CLI映像。所有图像都是从相同的基本OS映像构建的
----------------
| Web | CLI |
---------------------
| Python | DB |
---------------------
| Base image |
---------------------