我是新的docker并按照docker网站上的教程在本地安装boot2docker,并使用他们的教程(https://docs.docker.com/examples/nodejs_web_app/)为Node应用程序构建我自己的图像。我能够成功地完成这个,但我有以下问题:
(1)我应该使用这些Node Docker映像(https://registry.hub.docker.com/_/node/)而不是CentOS6作为我的Docker映像的基础吗?我猜Docker教程已经过时了?
(2)如果我应该基于Node Docker Images,那么有没有人想过Slim vs Regular官方节点图像是否更好用。我认为苗条将是最好的选择,但我对为什么存在多个版本感到困惑。
(3)我不希望我的Docker Images直接在图像中包含我的Node.JS应用程序源文件,因此必须在每次提交时重新创建我的图像。相反,我希望在启动特定提交时运行我的Docker容器从我的私有Git存储库中提取源。这可能吗?我可以使用像入口点这样的东西来指定我的凭据并在运行Docker Container时提交,然后它会运行一个shell脚本来提取代码,然后启动节点应用程序吗?
(4)我最终可能会在同一个EC2主机上运行多个不同的Docker容器。我想要确保容器都是基于同一个Linux发行版的首选?这会阻止我在第一次启动实例并运行不同的容器时下载多个版本吗?
谢谢!
答案 0 :(得分:5)
最好问四个单独的问题,而不是把这一切都放在一个问题中。但是:
1)是的,使用节点图像。
2)“常规”图像包括不在细长图像中的各种开发库。如果需要这些库,请使用常规图像,否则请使用slim。有关这些库的更多信息,请访问https://registry.hub.docker.com/_/buildpack-deps/
3)将代码放入使用--volumes-from添加到容器的数据容器中可能会更好。您可以在此处找到有关此技术的更多信息:https://docs.docker.com/userguide/dockervolumes/
4)我不明白这个问题。请注意,亚马逊现在有一个容器提供:https://aws.amazon.com/ecs/