docker 运行容器,如何重新运行

docker run container, how to rerun

我用以下方法构建容器:

docker build -f Dockerfile.xyz -t dave/xyz .

之后我 运行 docker 与:

docker run -it \
--env='LDAP_USER=uid=bot_for_git,ou=bots,dc=company,dc=org' \
--env='LDAP_PASS=' --volume=/srv/docker/xyz/data1:/data \
-p 8010:8010 -p 9989:9989 dave/xyz

并验证一切正常。

下一步是什么?

我的猜测,我应该 运行 docker ps,从那里获取容器 ID,然后 运行 具有相同首选项(环境、端口映射、卷映射)的容器我应该 运行:

docker start -a container_id

我说得对吗?

那么重建图像呢,如果更改 Dockerfile.xyz 并重建 dave/xyz,使用 container_id 的容器是否得到 自动更新,或者我应该重复 docker run -it 步骤?

docker build [...] 创建一个 图像 。您可以使用 docker images 查看您的图片。您可以使用 --tag=[...] 选项为该图像指定一个特定名称:

    docker build --tag="superuser/bestimage:latest" .

docker run [...] <imageId> 获取该图像并启动 容器 。您可以看到带有 docker ps 的活动容器(全部带有 docker ps -a)。如果您使用上面的标签,可能会使用 docker run -it superuser/bestimage:latest

重建映像时,会创建一个具有新 ID 的新映像。您可能会通过 docker images.

看到这一点

does container with container_id get update automatically

。为了更新您的容器,您必须先使用 docker kill <id> 删除容器,然后使用 docker run -it <newID>.

启动一个新容器