是否有可能从Dockerfile构建镜像,并使用一个命令运行它? docker build命令用于构建Dockerfile, docker run -it命令用于运行映像。
是否存在这两个命令的组合,以使仅使用一个命令就可以更容易地构建和运行?
是否有可能从Dockerfile构建镜像,并使用一个命令运行它? docker build命令用于构建Dockerfile, docker run -it命令用于运行映像。
是否存在这两个命令的组合,以使仅使用一个命令就可以更容易地构建和运行?
当前回答
不,没有单一的命令。但是如果你在构建图像时给它打上标签,它会更容易运行:
docker build -t foo . && docker run -it foo
其他回答
不,没有单一的命令。但是如果你在构建图像时给它打上标签,它会更容易运行:
docker build -t foo . && docker run -it foo
对于任何寻找可重用解决方案的人来说,你可以安装我创建的这个docker插件: https://github.com/stasmihailov/docker-script
然后你可以构建并运行Dockerfile,如下所示:
docker script ./Dockerfile
如果你想避免标记,docker build -q只输出最终的图像散列,你可以使用它作为docker run的参数:
docker run -it $(docker build -q .)
如果你想在容器退出时自动移除,则在docker run中添加——rm。
docker run --rm -it $(docker build -q .)
如果你使用Makefile,我发现这个片段很有用:
build:
@docker build . | tee .buildlog
bash: build
@docker run --rm -it $(shell grep "Successfully built" .buildlog | cut -d ' ' -f 3) /bin/bash
您不需要像@ jonathan -reinhart answer中那样的标记,但是您也可以得到构建输出。
最近,我开始收到关于每次构建后使用docker扫描的宣传信息。
使用“docker扫描”对图像运行Snyk测试,以查找漏洞并学习如何修复它们
这是我过去常做的事:
docker build --quiet .
这就是现在的工作方式:
docker build --quiet . | head -n1