Docker帮助:为Node.js App创建Dockerfile和Image

时间:2014-11-30 09:28:35

标签: node.js docker dockerhub dockerfile

我是新的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发行版的首选?这会阻止我在第一次启动实例并运行不同的容器时下载多个版本吗?

谢谢!

1 个答案:

答案 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/