gpt4 book ai didi

docker - 守护进程重启后将新的日志配置应用于所有容器

转载 作者:行者123 更新时间:2023-12-02 18:13:41 28 4
gpt4 key购买 nike

daemon.json 中的新配置是否可以在守护进程重启后应用于所有容器?

Docker 似乎不会将 daemon.json 中的日志配置更改应用于已经运行的容器,即使守护进程已重新启动:

  1. daemon.json 中使用一些日志配置运行容器 (c1),例如 ... "max-file": "3"...
  2. docker inspect c1 显示配置
  3. daemon.json 更改为 ... "max-file": "5"...
  4. 使用 service docker restart 重启守护进程
  5. docker inspect c1 显示配置
  6. 如果我运行一个新容器 (c2) 并且 docker inspect c2 新配置适用于这个容器

我不希望有这种行为。

最佳答案

不是您想听到的,但是...

这种行为是意料之中的。容器从其配置的创建点开始就是静态的。

为了强调这一说法,这里有一个存储驱动程序的例子。如果您选择另一个存储驱动程序,您当前的容器将不再工作。您可以在此处找到此特定信息:

https://docs.docker.com/v17.09/engine/userguide/storagedriver/selectadriver/#shared-storage-systems-and-the-storage-driver

Important: When you change the storage driver, any existing images and containers become inaccessible. This is because their layers cannot be used by the new storage driver. If you revert your changes, you will be able to access the old images and containers again, but any that you pulled or created using the new driver will then be inaccessible.


要执行您在守护进程中所做的更改,您需要在系统上重新创建所有容器。

保存您的数据

您是否将数据存储在命名卷或主机路径卷中?如果是这样你应该没问题,否则你可以从容器中复制你需要的任何数据

docker cp container:/path/to/files /target/folder/on/host

https://docs.docker.com/engine/reference/commandline/cp/

如果您使用编排器,您可以例如排空节点,这会终止主机上的所有容器,并在成功排空后将节点添加回集群。具体命令将取决于您选择的协调器。


更新

问题:我不明白数据量如何与日志配置相关联。如果我将数据存储在命名卷或主机路径卷中,我会很好,但我没有看到与我的问题的关系。

回答:正确,就功能而言,有关卷的信息只是为您添加的,这样您就不会在不知不觉中/不可恢复地丢失数据。

关于docker - 守护进程重启后将新的日志配置应用于所有容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58841238/

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