docker.service가 비활성화되어 있지만 매시간 정시에 시작됩니다. 나는 그것을 중지했고 알 수 없는 이유로 다음 시간에 다시 시작되기 시작했습니다... 그것을 트리거할 크론탭을 찾지 못했습니다.
내 시스템에서 발생한 문제의 예:
[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
두 개의 단위 파일에 의해 제어됩니다.
[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 서비스가 더 이상 매시간 시작되지 않습니다 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 엔진이 자동으로 다시 시작됩니다.