Answers:
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脚本进行构建,该脚本传递任何args,并在其中包含图像名称以保存输入。对于生产来说,构建是由在管道脚本中具有映像名称的ci / cd服务器处理的。
如何不使用yml文件构建具有自定义名称的图像:
docker build -t image_name .
如何使用自定义名称运行容器:
docker run -d --name container_name image_name
Dockerfile
在与您的图像名称相同的目录中,则可以将其docker build -t $(basename $PWD) .
用作构建命令。然后,您可以使用“构建”中的CTRL-R搜索来查找和重复使用该命令,而无需进行编辑。您也可以根据需要将其设为别名。
如果您必须引用特定的docker文件,则这是另一个版本:
version: "3"
services:
nginx:
container_name: nginx
build:
context: ../..
dockerfile: ./docker/nginx/Dockerfile
image: my_nginx:latest
那你就跑
docker-compose build