Puncte:0

Cum să restabiliți containerele docker după eliminarea rapidă a docker

drapel pt

Am eliminat docker cu sudo snap remove docker. De fapt, nu am vrut să-l elimin, doar verificam dacă l-am instalat snap, având încredere că m-ar îndemna cu (da/nu) ca apt face. Dar a mers înainte și a eliminat docker-ul. Amenda.A fost rapid să-l reinstalez din nou.

Dar, unde sunt containerele mele?! Toate imaginile și containerele (docker ps -a) au plecat! A durat mult timp să-l dezinstalez, așa că mă întreb dacă există o copie de rezervă sau dacă fișierele sunt încă păstrate și containerele pot fi restaurate? Nu-ți pasă de imagini, doar de containere. Mulțumiri.

Verificat /var/snap/docker/common/var-lib-docker/containers dar containerele originale nu sunt acolo.

Puncte:1
drapel pt

Se pare că operațiunea care dura mult timp a fost într-adevăr o copie de rezervă sau, în terminologia lor, un instantaneu. De la documentație:

Instantaneele sunt generate manual cu comanda snap save și automat când un snap este eliminat (necesită snapd 2.39+). A snapshot poate fi folosit pentru a salva starea instantaneelor ​​dvs., pentru a reveni la instantanee la o stare anterioară și pentru a restabili o nouă instalare snapd la a starea salvată anterior.

Mi-am verificat snapd versiune:

# snap --version
snap 2.52.1
snapd 2.52.1
seria 16
ubuntu 21.04
nucleu 5.11.0-40-generic

Apoi am văzut ce instantanee erau disponibile:

# snap salvat
Setați Snap Age Version Rev Size Notes
1 docker 2h58m 20.10.8 1125 1,39 GB automat

Am verificat că instantaneul este OK:

# instantaneu verificare-instantaneu 1
Instantaneul #1 a fost verificat cu succes.

În cele din urmă, a restaurat instantaneul automat:

# restaurare rapidă 1
Instantaneul #1 restaurat.

In acest punct docker ps -a încă mi-a arătat containerele pe care le-am creat după cea mai recentă instalare, mai degrabă decât pe cele pe care doream să le refac. Poate că dacă nu aș fi creat containere noi, ar funcționa. Dar știu că cel puțin fișierele container au fost restaurate, pentru că le găsesc sub /var/snap/docker/common/var-lib-docker/overlay2/. Acest lucru este mai bine decât nimic. Ai grija cu îndepărtare rapidă!

Restaurarea containerelor originale

Permiteți-mi să recapitulez cum am ajuns în această stare:

  • a fugit sudo snap remove docker care a șters containere importante
  • a fugit sudo snap install docker pentru a instala docker din nou
  • a fugit docker-compune care a adus două containere noi
  • a fugit restaurare rapidă 1 pentru a restabili instantaneul automat

În acest moment, am putut găsi fișierele container restaurate, dar docker ps -a încă nu a arătat containerele reale. În rezumat, iată ce am făcut pentru a recupera containerele pline:

  • am eliminat toate containerele și imaginile vizibile după a doua instalare, deoarece nu aveam nevoie de ele
  • a eliminat din nou docker cu sudo remove docker și am observat că instantaneul automat are loc din nou: „Salvați datele instantaneului „docker” în setul de instantanee automate nr. 2”.
  • a restaurat din nou primul instantaneu: restaurare rapidă 1

Acum dacă o fac docker ps -a Îmi pot vedea din nou toate containerele, în stare oprită! Există totuși o problemă, una dintre ele nu va începe, cu mesajul: Eroare: răspuns de la daemon: OCI runtime create failed: container with id exists:....

Pentru a rezolva asta, cel mai simplu mod pe care l-am găsit a fost docker commit <container-id> și utilizați imaginea rezultată pentru a o porni ca un nou container. După ce am văzut că e bine, am scăpat de cel stricat. Toate au revenit la normal!

Apropo, se consideră o practică bună să folosești volume pentru a persista datele în containere. Imaginile pot fi, de asemenea salvat la o arhivă.

user535733 avatar
drapel cn
Răspuns grozav.Am invatat ceva! Mulțumim că ne-ați condus prin ea.
Nagev avatar
drapel pt
Mulțumesc, acum am reușit să fac containerele vizibile prin curățarea și reinstalarea docker. Acestea apar cu `docker ps -a`, dar nu pot fi pornite: `Răspuns de eroare de la daemon: OCI runtime create failed: container with id exists:...` va vedea dacă pot remedia conflictul și să le pun în funcțiune normal din nou.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.