重新生成并重新运行DockerContainer

重新生成并重新运行DockerContainer,docker,continuous-integration,continuous-delivery,Docker,Continuous Integration,Continuous Delivery,我正在试验Docker,我建立了一个节点应用程序。 该应用程序位于my Gogs容器中的GIT Repo中 我想把所有代码都保存在我的容器中,因此在应用程序根目录下我有我的Dockerfile 我想创建一个Shell脚本来自动重建容器并重新运行它。 该脚本稍后在GIT推送过程中通过“webhook容器”调用 Docker CLI只有一个build和一个run命令。但是,如果具有该名称的映像或容器已经存在,则两者都会失败 处理此问题的最佳做法是什么 备注:我不想在主机上保留我的应用程序源代码,只更

我正在试验Docker,我建立了一个节点应用程序。 该应用程序位于my Gogs容器中的GIT Repo中

我想把所有代码都保存在我的容器中,因此在应用程序根目录下我有我的Dockerfile

我想创建一个Shell脚本来自动重建容器并重新运行它。 该脚本稍后在GIT推送过程中通过“webhook容器”调用

Docker CLI只有一个build和一个run命令。但是,如果具有该名称的映像或容器已经存在,则两者都会失败

处理此问题的最佳做法是什么

备注:我不想在主机上保留我的应用程序源代码,只更新源代码并重新启动容器!
我喜欢我的整个应用程序是一个容器的想法。

在运行构建或运行命令之前,可以删除docker容器和图像

要移除所有容器,请执行以下操作:

docker rm $(docker ps -a -q)
要删除所有图像,请执行以下操作:

docker rmi $(docker images -q)
要移除特定容器,请执行以下操作:

docker rm -f containerName

然后在执行上述相关命令后,运行脚本。您的脚本通常会根据需要生成、运行或拉取。

当您使用现有名称生成映像时,它将替换现有的:最新映像,但不知道生成失败的原因。对于容器,是的,您需要删除旧的,只是
docker rm container\u name/id
听起来不错!在容器中部署源(或二进制)文件是一种常见做法吗?在大多数示例中,应用程序位于主机上并安装在容器中。我找到了Gogs的盒子,真是太可怕了。您必须拉取图像,并且离您的自托管github只有“docker run”。无需文件权限,无需编译和可执行部署。大多数人构建映像并将其推送到docker hub-然后docker可以从任何位置拉取该映像-人们倾向于在docker hub上提供他们的docker文件供人们查看,但仅拉取映像时不需要访问原始docker文件