ฉันกำลังพยายามติดตั้งนักเทียบท่าบนเครื่องผ่าน:
apt-get --allow-downgrades -yq ติดตั้งนักเทียบท่า-ce=18.06.3*
สิ่งนี้ทำให้เกิดข้อผิดพลาดระหว่างสคริปต์หลังการติดตั้ง:
â docker.service - Docker Application Container Engine
โหลดแล้ว: โหลดแล้ว (/lib/systemd/system/docker.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: เปิดใช้งาน)
ใช้งานอยู่: กำลังเปิดใช้งาน (รีสตาร์ทอัตโนมัติ) (ผลลัพธ์: exit-code) ตั้งแต่พฤ. 2021-09-02 18:17:18 EDT; 3ms ที่แล้ว
เอกสาร: https://docs.docker.com
กระบวนการ: 17110 ExecStart=/usr/bin/dockerd -H fd:// (code=exited, status=1/FAILURE)
PID หลัก: 17110 (รหัส=ออก สถานะ=1/ล้มเหลว)
dpkg: แพ็คเกจการประมวลผลข้อผิดพลาด docker-ce (--configure):
กระบวนการย่อยสคริปต์หลังการติดตั้งแพ็คเกจ docker-ce ที่ติดตั้งส่งคืนสถานะการออกจากข้อผิดพลาด 1
กำลังประมวลผลทริกเกอร์สำหรับ systemd (237-3ubuntu10.51) ...
กำลังประมวลผลทริกเกอร์สำหรับ man-db (2.8.3-2ubuntu0.1) ...
กำลังประมวลผลทริกเกอร์สำหรับ ureadahead (0.100.0-21) ...
พบข้อผิดพลาดขณะประมวลผล:
นักเทียบท่า-ce
ดูใน journalctl -xe:
-- Unit docker.service เริ่มทำงานแล้ว
Sep 02 16:44:20 office64-001 dockerd[20320]: ไม่สามารถโหลดผู้ฟัง: ไม่พบซ็อกเก็ตผ่านการเปิดใช้งานซ็อกเก็ต: ตรวจสอบให้แน่ใจว่าบริการเริ่มต้นโดย systemd
02 ก.ย. 16:44:20 office64-001 systemd[1]: docker.service: ออกจากกระบวนการหลักแล้ว, รหัส=ออกแล้ว, สถานะ=1/ล้มเหลว
02 ก.ย. 16:44:20 office64-001 systemd[1]: docker.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
Sep 02 16:44:20 office64-001 systemd[1]: ไม่สามารถเริ่ม Docker Application Container Engine
ข้อผิดพลาดข้างต้นเกิดขึ้นเมื่อเวลา 16:44:20 น. จากนั้นดูที่ผลลัพธ์ของ journalctl -u docker.socket:
02 กันยายน 16:44:21 office64-001 systemd[1]: กำลังเริ่มต้น Docker Socket สำหรับ API
02 ก.ย. 16:44:21 office64-001 systemd[1]: กำลังฟัง Docker Socket สำหรับ API
ดูเหมือนว่าซ็อกเก็ตจะทำงานในวินาทีหลังจากข้อผิดพลาดด้านบน
หลังจากนี้ นักเทียบท่าจะพยายามรีสตาร์ทและทำสำเร็จ เนื่องจากซ็อกเก็ตมีโอกาสที่จะเปิดใช้งาน อย่างไรก็ตามมันเป็นความเข้าใจของฉันว่า docker.service ควรรอให้ docker.socket พร้อม. จากนักเทียบท่าบริการ:
[หน่วย]
คำอธิบาย=Docker Application Container Engine
เอกสาร = https://docs.docker.com
After=network-online.target docker.socket firewalld.service
ต้องการ=network-online.target
ต้องการ = docker.socket
ปัญหาของฉันคือฉันมีสคริปต์ที่ล้มเหลวเมื่อใดก็ตามที่การติดตั้งล้มเหลว ดังนั้นแม้ว่าจะดูเหมือนว่ามีการติดตั้งนักเทียบท่าอย่างถูกต้อง แต่ก็ทำให้เกิดปัญหาในขณะติดตั้งซึ่งทำให้สคริปต์ทำงานไม่ถูกต้อง
ความคิดใด ๆ ?