gpt4 book ai didi

docker - 是否重新启动 Docker 容器 "remember"初始运行参数?

转载 作者:IT老高 更新时间:2023-10-28 12:42:38 25 4
gpt4 key购买 nike

我使用 非常(8 行)长长的参数列表运行了一个 Docker 容器:

docker run -d -p 5000:5000 --restart=always --name registry \
-v `pwd`/auth:/auth \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/registry.key \
registry:2

我确认这是通过 docker ps 运行的:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
ff9c654bfc39 registry:2 "/bin/registry /etc/d" 2 days ago Up 13 minutes 0.0.0.0:5000->5000/tcp registry

然后我通过 docker stop ff9c654bfc39 停止了这个容器。然后我尝试通过发出与第一次完全相同的 docker run ... (8 liner) 来重新运行容器:

Error response from daemon: Conflict. The name "registry" is already in use by container ff9c654bfc39. You have to delete (or rename) that container to be able to reuse that name.

然后我只是尝试了 docker restart ff9c654bfc39 并且这似乎有效,但我不能 100% 确定 Docker “记住”了我最初运行容器时的 8 行参数。关于它是否记住的任何想法?如果不是,包含这 8 行的正确重启命令是什么?

最佳答案

正如@gabowsky 在评论中解释的那样,是的,Docker 会记住的。

使用 startstoprestart 不会破坏容器,因此会记住所有内容,包括数据(即使在主机重启之间) .stop 所做的是停止在容器内运行的进程。就是这样。

此外,Docker 以内部格式存储所有上下文、变量等。您不必再次指定命令行参数。要查看 Docker 对您的容器的了解情况,您可以运行 docker inspect

相反,rm 将销毁所有内容,包括没有持久化的数据,并且需要再次重新创建容器(这次再次提供参数)。

最后一点,在命令行中引用容器时,您应该非常多地使用名称而不是 SHA1

关于docker - 是否重新启动 Docker 容器 "remember"初始运行参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32702992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com