dockerサービスが無効になっていても毎時間起動されます。

dockerサービスが無効になっていても毎時間起動されます。

docker.serviceは無効になっていますが、1時間ごとに開始されます。私はそれを停止し、未知の理由で次の時間に再起動し始めました...それをトリガーするクローンタブが見つかりませんでした。

私のシステムで発生した問題の例:

[root@c2 ~]# while true;do date;ps -ef|grep docke[r];sleep 5;done
Sun Dec  1 16:59:45 UTC 2019
Sun Dec  1 16:59:50 UTC 2019
Sun Dec  1 16:59:55 UTC 2019
Sun Dec  1 17:00:00 UTC 2019
Sun Dec  1 17:00:05 UTC 2019
root      8930     1  4 17:00 ?        00:00:00 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json --selinux-enabled --log-driver=journald --signature-verification=false --storage-driver overlay2
root      8935  8930  0 17:00 ?        00:00:00 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --runtime-args --systemd-cgroup=true
Sun Dec  1 17:00:10 UTC 2019
root      8930     1  2 17:00 ?        00:00:00 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/libexec/docker/docker-proxy-current --init-path=/usr/libexec/docker/docker-init-current --seccomp-profile=/etc/docker/seccomp.json --selinux-enabled --log-driver=journald --signature-verification=false --storage-driver overlay2
root      8935  8930  0 17:00 ?        00:00:00 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc --runtime-args --systemd-cgroup=true
^C

そしてドッカーサービスの状態:

[root@c2 spool]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-12-01 17:00:03 UTC; 4min 31s ago
     Docs: http://docs.docker.com
 Main PID: 8930 (dockerd-current)
   CGroup: /system.slice/docker.service
           ├─8930 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-opt native.cgroupdriver=systemd --userland-proxy-path=/usr/lib...
           └─8935 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd...

答え1

dockerパッケージによってインストールされるサービスは、docker-ce2 つの単位ファイルによって制御されます。

[root@docker system]# rpm -ql docker-ce | grep /lib/systemd/system
/usr/lib/systemd/system/docker.service
/usr/lib/systemd/system/docker.socket

気にしない提供する実行している場合は、ソケットへの接続を介して有効にすることができます。つまり、ユーザー(またはcronジョブまたは他の人)がコマンドを実行するたびにサービスがまだ実行されていないdocker場合はdocker、サービスが開始されます。

Dockerを完全に無効にするには、次の手順を実行する必要があります。

systemctl disable --now docker.service docker.socket

disable --now(a)サービスとソケットデバイスが停止し、(b)ホストの再起動時に再起動されません。

答え2

サービスも停止(および無効)すると、dockerサービスは1時間ごとに開始されなくなりますdocker-cleanup.timer( "systemctl | grep docker"出力で実行されることがわかります)。

  docker-cleanup.timer         loaded active waiting   Run docker-cleanup every hour

centos で docker を起動すると docker-cleanup.timer が再起動し、「systemctl stop docker」を使用して docker を停止すると停止しません。これにより、次回に Docker エンジンが自動的に再起動します。

関連情報