docker daemon bất ngờ thoát
Docker đã thoát không có lý do rõ ràng và tôi đang cố gắng hiểu chuyện gì đã xảy ra.
Ngay bây giờ, daemon docker là một dịch vụ đã được tải, không hoạt động với trạng thái thoát 0 THÀNH CÔNG.
$ systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Tue 2020-12-01 06:25:16 UTC;
Docs: https://docs.docker.com
Main PID: 2218 (code=exited, status=0/SUCCESS)
Nhìn vào nhật ký của docker, điều này xảy ra vì nó đã xử lý tín hiệu 'kết thúc':
$ journalctl -u docker.service | tail -25
Nov 30 18:30:21 ip-10-38-4-210 dockerd[2218]: time="2020-11-30T18:30:21.728694550Z" <redacted irrelevant>
Dec 01 06:25:05 ip-10-38-4-210 systemd[1]: Stopping Docker Application Container Engine...
Dec 01 06:25:05 ip-10-38-4-210 dockerd[2218]: time="2020-12-01T06:25:05.867748396Z" level=info msg="Processing signal 'terminated'"
Dec 01 06:25:16 ip-10-38-4-210 systemd[1]: Stopped Docker Application Container Engine.
Không có người dùng nào đăng nhập trên máy chủ đó tại thời điểm đó, không có người dùng nào chấm dứt trình nền docker một cách rõ ràng.
- Tại sao điều này lại xảy ra, nhật ký nào có thể cung cấp manh mối?
- Tôi có thể định cấu hình dockerd để khởi động lại tự động khi thoát không?
Đây là phiên bản Docker 18.09.7 (bản dựng 2d0083d) trên Ubuntu 16.04.6 LTS trên x86-64.
Mối quan hệ với systemd đang được hỏi trên Unix.stackexchange tại đây
Trả lời
Dec 01 06:25:05 ip-10-38-4-210 systemd[1]: Stopping Docker Application Container Engine...
Tại thời điểm này, systemd đã gửi cho docker một yêu cầu dừng.
Dec 01 06:25:05 ip-10-38-4-210 dockerd[2218]: time="2020-12-01T06:25:05.867748396Z" level=info msg="Processing signal 'terminated'"
Docker đã nhận được yêu cầu dừng đó và thoát ra một cách duyên dáng.
Dec 01 06:25:16 ip-10-38-4-210 systemd[1]: Stopped Docker Application Container Engine.
Systemd hiện báo cáo việc dừng đã kết thúc. 10 giây có thể là từ các vùng chứa không xử lý docker container stoplệnh một cách khéo léo và bị giết sau 10 giây, sau đó một giây nữa để hoàn tất xử lý yêu cầu.
Vì vậy, từ các bản ghi được cung cấp, trình nền dockerd đang hoạt động theo yêu cầu và bạn nên kiểm tra xem những gì sẽ gửi một systemctl stop dockerlệnh.
Tôi có thể định cấu hình dockerd để khởi động lại tự động khi thoát không?
dockerd không kiểm soát systemd, systemd kiểm soát dockerd, vì vậy bạn cần giải quyết vấn đề từ phía systemd.
Trong trường hợp cụ thể này, điều yêu cầu systemd dừng dịch vụ docker dường như là dịch vụ cập nhật không giám sát Ubuntu áp dụng các bản cập nhật phiên bản Ubuntu của gói containerd.
https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1870514
Bản sửa lỗi được đề xuất của tôi sẽ là cài đặt docker từ kho lưu trữ Docker ngược dòng mà dường như không có vấn đề này:
https://docs.docker.com/engine/install/ubuntu/