我是 Docker 新手,我用来从 Dockerfile 创建和执行容器的过程如下:
docker build -t (IMAGE_NAME) .
docker docker run -itd --name (CONTAINER_NAME) (IMAGE_NAME)
docker exec -it (CONTAINER_NAME) bash
但是,如果我想更新我的 Dockerfile 并再次运行容器,我必须执行以下操作:
docker ps
获取我的容器的 IDdocker container stop (ID)
docker rm (ID)
然后我必须重复前三个步骤。有没有更快的方法可以做到这一点,或者每次更新 Dockerfile 时都必须重新运行这些步骤?这非常繁琐
答案1
如果时间紧迫,请启用构建工具,构建速度更快。
export DOCKER_BUILDKIT=1
您已经知道在所有 3 个命令中使用名称,您可以将所有 3 个命令组合起来
docker rm NAME; docker build -t NAME /absolutepath && docker docker run -itd --name NAME && docker exec -it NAME bash
我&&
在执行命令中使用(当返回代码为 0=无错误时运行下一个命令),并;
在初始删除上一个容器时使用(继续执行下一个命令,即使出现错误,例如“未找到容器”)。因为如果您忘记已经删除了容器,这不会停止链。正如您所见,我鼓励您使用绝对路径,这样docker build
它在任何目录中都可以工作,如果您碰巧稍微移动一下。