如何从 DockerFile 运行 docker 实例?

新手上路,请多包涵

我终于想出了如何让 docker 启动并运行。

 docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu

我将它链接到一个 redis 实例,很酷。

这是从头开始的,我假设当我创建 redis 实例时

docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis

它从远程仓库中提取图像?

NodeBB 提供了一个 Dockerfile https://github.com/NodeBB/NodeBB/blob/master/Dockerfile 我不太清楚如何使用它。我假设我可以通过在我的遥控器上调用这个 Dockerfile 以某种方式创建一个本地环境。

这个对吗?如果是这样,我如何创建指向远程的本地实例?

原文由 Michael Joseph Aubry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 644
2 个回答

下载文件并从同一目录运行 docker build -t nodebb .

这将在您的本地计算机上为您提供一个名为 nodebb 的映像,您可以使用 docker run -d nodebb 启动一个容器(您可以将 nodebb 更改为您自己的名称)。

原文由 Andreas Wederbrand 发布,翻译遵循 CC BY-SA 4.0 许可协议

虽然其他答案是可用的,但这真的帮助了我,所以我也把它放在这里。

文档中

您可以在 URL 中传递单个 Dockerfile 或通过 STDIN 管道输入文件,而不是指定上下文。要从 STDIN 管道传输 Dockerfile:

 $ docker build - < Dockerfile

使用 Windows 上的 Powershell,您可以运行:

 Get-Content Dockerfile | docker build -

构建完成后,运行命令:

 docker image ls

你会看到这样的东西:

 REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
<none>                     <none>              123456789        39 seconds ago      422MB

复制您的实际 IMAGE ID,然后运行

docker run 123456789

末尾的数字是上一步中的实际图像 ID

如果您不想记住图像 ID,可以通过以下方式标记图像

docker tag 123456789 pavel/pavel-build

这会将您的图像标记为 pavel/pavel-build

原文由 Pavel Janicek 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题