docker守護進程如何退出

docker守護進程是負責運行、管理docker容器的核心組件。然而,有時候可能需要退出docker守護進程,例如在系統(tǒng)重啟后重新啟動時等。本文將介紹docker守護進程退出的方法。

一、docker守護進程退出的方式

在Docker守護進程啟動時,可以通過參數指定守護進程退出的方式。以下是常用的退出方式:

  1. SIGTERM:發(fā)送SIGTERM信號能讓Docker守護進程優(yōu)雅地退出,停止正在運行中的容器,并保存容器和鏡像的狀態(tài)和數據。使用該方式退出Docker守護進程可以保證數據的完整性。
  2. SIGINT:發(fā)送SIGINT信號能讓Docker守護進程優(yōu)雅地退出,但如果有正在運行中的容器,它們可能會被強制停止,數據可能會丟失。
  3. SIGKILL:發(fā)送SIGKILL信號能強制Docker守護進程退出,會停止所有正在運行中的容器,而且不會保存容器和鏡像的狀態(tài)和數據。使用該方式退出Docker守護進程可能會導致數據丟失。

二、退出Docker守護進程的實現(xiàn)

退出Docker守護進程有以下兩種方式:

  1. 使用docker命令

使用docker命令可以退出Docker守護進程。首先需要查看Docker守護進程的進程號,然后使用kill命令發(fā)送信號退出Docker守護進程,如下所示:

# 查看Docker守護進程的進程號 $ ps aux | grep dockerd root      1139  0.0  0.2 139168 41496 ?        Ssl  11:21   0:00 dockerd -H unix:///var/run/docker.sock  # 發(fā)送SIGTERM信號退出Docker守護進程 $ kill -s SIGTERM 1139
  1. 修改Docker守護進程啟動參數

在Docker守護進程啟動時,可以通過參數指定退出方式。如果沒有指定退出方式,默認使用SIGTERM。可以通過修改啟動參數的方式改變退出方式,如下所示:

  1. 編輯Docker守護進程的服務文件
$ sudo vim /usr/lib/systemd/system/docker.service
  1. 在Service節(jié)中添加ExecStop行
[Service] Type=notify ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/dockerd --shutdown-timeout 30 # 添加此行 KillMode=process
  1. 重啟Docker守護進程
$ sudo systemctl daemon-reload $ sudo systemctl restart docker.service

三、總結

Docker守護進程是Docker的核心組件之一,退出Docker守護進程可以使用docker命令或修改Docker守護進程啟動參數的方式。退出Docker守護進程時需要注意選擇合適的退出方式,以保證數據的完整性。

? 版權聲明
THE END
喜歡就支持一下吧
點贊6 分享