Điểm:0

Cách khôi phục vùng chứa docker sau khi xóa docker

lá cờ pt

Tôi đã gỡ bỏ docker với sudo snap loại bỏ docker. Tôi thực sự không muốn xóa nó, chỉ kiểm tra xem tôi đã cài đặt nó chưa búng tay, tin tưởng rằng nó sẽ nhắc tôi với (y/n) Thích đúng cách làm. Nhưng nó chỉ tiếp tục và gỡ bỏ docker. Khỏe.Thật nhanh chóng để cài đặt lại nó một lần nữa.

Nhưng, container của tôi ở đâu?! Tất cả các hình ảnh và vùng chứa (docker ps -a) đã đi rồi! Phải mất một thời gian dài để gỡ cài đặt nó, vì vậy tôi tự hỏi liệu có một số bản sao lưu hoặc các tệp vẫn được lưu giữ và các vùng chứa có thể được khôi phục không? Đừng quan tâm đến hình ảnh, chỉ cần các thùng chứa. Cảm ơn.

Đã kiểm tra /var/snap/docker/common/var-lib-docker/container nhưng các thùng chứa ban đầu không có ở đó.

Điểm:1
lá cờ pt

Hóa ra hoạt động mất nhiều thời gian thực sự là một bản sao lưu, hay theo thuật ngữ của họ, một ảnh chụp nhanh. Từ tài liệu:

Ảnh chụp nhanh được tạo thủ công bằng lệnh lưu nhanh và tự động khi xóa snap (yêu cầu snapd 2.39 trở lên). Một ảnh chụp nhanh có thể được sử dụng để sao lưu trạng thái ảnh chụp nhanh của bạn, hoàn nguyên ảnh chụp nhanh về trạng thái trước đó và để khôi phục cài đặt snapd mới về trạng thái trạng thái đã lưu trước đó.

tôi đã kiểm tra của tôi búng tay phiên bản:

# snap --version
chụp nhanh 2.52.1
bắt nhanh 2.52.1
sê-ri 16
Ubuntu 21.04
hạt nhân 5.11.0-40-chung

Sau đó, xem những ảnh chụp nhanh nào có sẵn:

# đã lưu ảnh chụp nhanh
Đặt Snap Age Phiên bản Rev Size Ghi chú
1 docker 2h58m 20.10.8 1125 1.39GB tự động

Đã kiểm tra xem ảnh chụp nhanh đó có ổn không:

# kiểm tra nhanh-ảnh chụp nhanh 1
Ảnh chụp nhanh số 1 đã được xác minh thành công.

Cuối cùng, đã khôi phục ảnh chụp nhanh tự động:

# chụp khôi phục 1
Đã khôi phục ảnh chụp #1.

Tại thời điểm này docker ps -a vẫn hiển thị cho tôi các vùng chứa mà tôi đã tạo sau lần cài đặt mới nhất, thay vì các vùng chứa mà tôi muốn khôi phục. Có lẽ nếu tôi không tạo các thùng chứa mới, nó sẽ hoạt động. Nhưng tôi biết rằng ít nhất các tệp vùng chứa đã được khôi phục, vì tôi có thể tìm thấy chúng bên dưới /var/snap/docker/common/var-lib-docker/overlay2/. Điều này tốt hơn là không có gì. Cẩn thận với loại bỏ nhanh chóng!

Khôi phục vùng chứa ban đầu

Hãy để tôi tóm tắt lại cách tôi rơi vào trạng thái này:

  • đã chạy sudo snap loại bỏ docker đã quét sạch các thùng chứa quan trọng
  • đã chạy sudo snap cài đặt docker để cài đặt lại docker
  • đã chạy soạn thảo docker đã mang đến hai container mới
  • đã chạy khôi phục nhanh 1 để khôi phục ảnh chụp nhanh tự động

Tại thời điểm này, tôi đã có thể tìm thấy các tệp vùng chứa đã khôi phục, nhưng docker ps -a vẫn không hiển thị các thùng chứa thực tế. Tóm lại, đây là những gì tôi đã làm để lấy lại các thùng chứa đầy đủ:

  • đã xóa tất cả các vùng chứa và hình ảnh có thể nhìn thấy sau lần cài đặt thứ hai vì tôi không cần chúng
  • loại bỏ docker một lần nữa với sudo loại bỏ docker và nhận thấy ảnh chụp tự động diễn ra một lần nữa: "Lưu dữ liệu snap "docker" trong bộ snapshot tự động #2".
  • đã khôi phục ảnh chụp nhanh đầu tiên một lần nữa: khôi phục nhanh 1

Bây giờ nếu tôi làm docker ps -a Tôi có thể thấy lại tất cả các vùng chứa của mình, ở trạng thái dừng! Tuy nhiên, có một vấn đề, một trong số chúng sẽ không bắt đầu với thông báo: Lỗi: phản hồi từ daemon: Tạo thời gian chạy OCI không thành công: vùng chứa có id tồn tại:....

Để giải quyết vấn đề này, cách đơn giản nhất tôi tìm thấy là docker cam kết <container-id> và sử dụng hình ảnh thu được để khởi động nó dưới dạng vùng chứa mới. Sau khi tôi thấy nó ổn, tôi đã loại bỏ cái bị hỏng. Tất cả trở lại bình thường!

Nhân tiện, việc sử dụng ổ đĩa để duy trì dữ liệu trong vùng chứa được coi là một phương pháp hay. Hình ảnh cũng có thể được đã lưu đến một kho lưu trữ.

user535733 avatar
lá cờ cn
Câu trả lời chính xác.Tôi đã học được một cái gì đó! Cảm ơn vì đã dẫn dắt chúng tôi vượt qua nó.
Nagev avatar
lá cờ pt
Cảm ơn, bây giờ cũng quản lý để hiển thị các vùng chứa bằng cách dọn dẹp và cài đặt lại docker. Chúng hiển thị với `docker ps -a` nhưng chúng không thể khởi động được: `Phản hồi lỗi từ daemon: Tạo thời gian chạy OCI không thành công: bộ chứa có id tồn tại:...` sẽ xem liệu tôi có thể khắc phục xung đột và khởi chạy chúng không bình thường trở lại.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.