Vấn đề “state Down” khi cluster swarm của bạn chỉ có duy nhất một manager (có thể kiêm cả worker) và cluster của bạn không có quorum nên không thể bầu chọn leader được. Và trong trường hợp server của bạn cần phải reboot để thay ram hoặc mất điện thì sẽ không thể nào start cluster swarm lên được.
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
qz0cen9fshc7ncqjuxvdxz1ak * WORKER-NODE Ready Active Leader 19.03.8
Có một cách sau đây mà vẫn có thể start swarm cluster và tiếp tục giữ các service stack đã tạo trước đó chạy được trong docker swarm như sau:
Cách khắc phục
Bước 1: Xóa file tasks.db
Đây là file cache database được sử dụng để lưu giữ thông tin về tasks đã được khởi chạy và có thể cần thiết nếu có sự cố network nào đó giữa worker và manager. Và nó cũng có thể chứa những thông tin như các tasks khởi chạy không thành công (sử dụng command docker service ps để xem).
sudo rm /var/lib/docker/swarm/worker/tasks.db
Bước 2: Start docker
Chạy lệnh sau để start docker swarm
sudo service docker start