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

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

是否有一种方法可以在Dockerfile中定义图像的名称,这样我就不必在docker构建命令中提到它了?


当前回答

如果你想在构建后给docker映像命名 只需要重新构建一次,但这次要命名 效果很好

docker build -t name_of_image .

其他回答

使用特定的Dockerfile,您可以尝试: docker build——tag < docker镜像名称>——file <特定Dockerfile> . docker build——tag < docker镜像名称>。 例如 Dockerfile_Second Dockerfile_Second Dockerfile_Second Dockerfile_Second

如果你想在构建后给docker映像命名 只需要重新构建一次,但这次要命名 效果很好

docker build -t name_of_image .

我的Dockerfile单独的解决方案是添加一个shebang行:

#!/usr/bin/env -S docker build . --tag=dude/man:v2 --network=host --file

FROM ubuntu:22.04
# ...

然后运行chmod +x Dockerfile和。/Dockerfile。 我甚至添加了更多的docker构建命令行参数,比如指定主机网络。

注意:带有-S/——split-string支持的env仅适用于较新的coreutils版本。

这里是另一个版本,如果你必须引用一个特定的docker文件:

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

然后你就跑

docker-compose build

如何在不使用yml文件的情况下建立一个自定义名称的图像:

docker build -t image_name .

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

docker run -d --name container_name image_name