4

我是新的 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 映像,那么有人对 Slim 与常规官方节点映像是否更好用有任何想法。我认为 slim 将是最佳选择,但我对为什么存在多个版本感到困惑。

(3) 我不希望我的 Docker 映像直接在映像中包含我的 Node.JS 应用程序源文件,因此必须在每次提交时重新创建我的映像。相反,我想运行我的 Docker 容器,以便在启动特定提交时从我的私有 Git 存储库中提取源代码。这可能吗?我可以在运行 Docker 容器时使用入口点之类的东西来指定我的凭据并提交,这样它就会运行一个 shell 脚本来拉取代码,然后启动节点应用程序?

(4) 我最终可能会在同一个 EC2 主机上运行多个不同的 Docker 容器。我想确保容器都基于相同的 Linux 发行版会是首选?这会阻止我在首次启动实例并运行不同的容器时下载多个版本?

谢谢!

4

1 回答 1

5

最好提出 4 个单独的问题,而不是将所有这些问题都放在一个问题中。但:

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/

于 2014-11-30T13:59:17.917 回答