如何在 Dockerfile 中设置镜像名称?

新手上路,请多包涵

您可以在构建自定义图像时设置图像名称,如下所示:

 docker build -t dude/man:v2 . # Will be named dude/man:v2

有没有办法在 Dockerfile 中定义镜像的名称,这样就不用在 docker build 命令中提及了?

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

阅读 2.4k
2 个回答

Dockerfile 中不支持对图像进行标记。这需要在您的构建命令中完成。作为一种解决方法,您可以使用标识目标映像名称的 docker-compose.yml 进行构建,然后运行 docker-compose build 。一个示例 docker-compose.yml 看起来像

version: '2'

services:
  man:
    build: .
    image: dude/man:v2

也就是说,反对使用 compose 进行构建,因为这不适用于 swarm 模式部署。所以你回到你在问题中给出的运行命令:

 docker build -t dude/man:v2 .

就个人而言,我倾向于在我的文件夹 (build.sh) 中使用一个小的 shell 脚本来构建,它传递任何参数并在其中包含图像的名称以节省输入。对于生产,构建由 ci/cd 服务器处理,该服务器在管道脚本中具有图像名称。

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

如何在不使用 yml 文件的情况下构建具有自定义名称的图像:

 docker build -t image_name .

如何使用自定义名称运行容器:

 docker run -d --name container_name image_name

原文由 salehinejad 发布,翻译遵循 CC BY-SA 3.0 许可协议

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