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-ce
2 つの単位ファイルによって制御されます。
[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 エンジンが自動的に再起動します。