Ash*_*ani 5 ubuntu service docker snapcraft docker-daemon
我阅读了启用实时恢复,但是当我尝试它时。
\nubuntu@ip-10-0-0-230:~$ cat /etc/docker/daemon.json \n{\n "live-restore": true\n}\nRun Code Online (Sandbox Code Playgroud)\n我以分离模式启动了一个 nginx 容器。
\nsudo docker run -d nginx\nc73a20d1bb620e2180bc1fad7d10acb402c89fed9846f06471d6ef5860f76fb5 \n\n\n$sudo docker ps\n\nCONTAINER ID IMAGE COMMAND CREATED STATUS \n \nc73a20d1bb62 nginx "nginx -g \'daemon of\xe2\x80\xa6" 5 seconds ago Up 4 \nseconds\nRun Code Online (Sandbox Code Playgroud)\n然后我停止了dockerd
\nsudo systemctl stop snap.docker.dockerd.service\nRun Code Online (Sandbox Code Playgroud)\n我检查了没有容器在运行
\nps aux | grep nginx\nRun Code Online (Sandbox Code Playgroud)\n之后,我重新启动了 docker 服务,仍然没有任何容器。
\n任何想法?“启用实时恢复”如何工作?
\n从文档中,修改daemon.json(添加"live-restore": true)后您需要:
\n\n\n重新启动 Docker 守护进程。在 Linux 上,您可以通过重新加载 Docker 守护进程来避免重新启动(并避免容器的任何停机时间)。如果您使用systemd,则使用命令systemctl reload docker。否则,向 dockerd 进程发送 SIGHUP 信号。
\n
您也可以这样做,但不建议这样做:
\n\n\n\n\n如果您愿意,可以使用 --live-restore 标志手动启动 dockerd 进程。不建议使用这种方法,因为它不会设置 systemd 或其他进程管理器在启动 Docker 进程时使用的环境。这可能会导致意外的行为。
\n
看来你还没有完成这一步。你说你修改了,daemon.json直接启动了一个容器,然后停止了dockerd。
为了使该Live Restore功能正常工作,请按照正确的顺序执行所有步骤:
daemon.json通过添加"live-restore": true使用以下命令重新加载 Docker 守护进程:
\n\nsudo systemctl reload docker\nRun Code Online (Sandbox Code Playgroud)然后尝试使用示例的功能(启动容器并使守护进程不可用)。
\n\n我已经测试过,如果您按顺序执行以下步骤,它就会起作用:
\n\n\n\n测试Docker version 19.03.2, build 6a30dfc与Ubuntu 19.10 (Eoan Ermine)
您已经通过snap安装了 Docker :snap.docker.dockerd.service
不幸的是,不推荐这样做,因为snap 模型与 Docker 不完全兼容。此外,docker-snap不再由 Docker, Inc 维护。用户通过snap安装Docker时遇到一些问题参见1 2
\n\n您应该删除 snap Docker 安装以避免通过以下命令出现任何潜在的重叠安装问题:
\n\nsudo snap remove docker --purge\nRun Code Online (Sandbox Code Playgroud)\n\n然后按照官方方式安装Docker ,然后Live Restore按照上述步骤尝试该功能。
重新启动守护进程时也要小心,文档说:
\n\n\n\n\n重启后实时恢复
\n\n如果守护进程选项(例如桥接 IP 地址和图形驱动程序)未更改,则实时恢复选项仅适用于恢复容器。如果这些守护程序级别配置选项中的任何一个发生更改,则实时恢复可能无法工作,并且您可能需要手动停止容器。
\n
还有关于停机时间:
\n\n\n\n实时恢复对正在运行的容器的影响
\n\n如果守护进程长时间关闭,运行的容器可能会填满守护进程通常读取的 FIFO 日志。完整的日志会阻止容器记录更多数据。默认缓冲区大小为 64K。如果缓冲区已满,则必须重新启动 Docker 守护程序才能刷新它们。
\n\n在 Linux 上,您可以通过更改 来修改 kernel\xe2\x80\x99s 缓冲区大小
\n/proc/sys/fs/pipe-max-size。
| 归档时间: |
|
| 查看次数: |
7717 次 |
| 最近记录: |