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

时间:2016-08-16 23:37:35

标签: docker tags dockerfile

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

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

有没有办法在Dockerfile中定义图像的名称,所以我不必在docker build命令中提及它?

5 个答案:

答案 0 :(得分:216)

如何使用自定义名称构建图像而不使用yml文件:

docker build -t image_name .

如何运行具有自定义名称的容器:

docker run -d --name container_name image_name

答案 1 :(得分:162)

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

version: '2'

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

也就是说,由于没有使用swarm模式部署,因此推动使用compose进行构建。因此,您已按照问题中的说明重新运行命令:

docker build -t dude/man:v2 .

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

答案 2 :(得分:18)

如果您必须引用特定的泊坞窗文件,这是另一个版本:

version: "3"
services:
  nginx:
    container_name: nginx
    build:
      context: ../..
      dockerfile: ./docker/nginx/Dockerfile
    image: my_nginx:latest

然后你就跑了

docker-compose up --build

答案 3 :(得分:1)

如果您想在构建后为 docker 镜像命名
再建一次,但这次给个名字
效果很好

docker build -t name_of_image .

答案 4 :(得分:-1)

您可以使用“ AS”执行此操作 来自ubuntu:16.04 AS FooImage