으로 도커를 제거했습니다 sudo snap remove docker
. 나는 실제로 그것을 제거하고 싶지 않았고 단지 내가 설치했는지 확인하고 ( 뒤늦게 snap
사용했어야 함 ) 그것이 나에게 같은 메시지 를 표시할 것이라고 믿었습니다. 하지만 계속해서 도커를 제거했습니다. 괜찮은. 다시 설치하는 것도 빨랐습니다.snap list
[Y/n]
apt
그런데 내 컨테이너는 어디에 있습니까?! 모든 이미지와 컨테이너가 (docker ps -a)
사라졌습니다! 제거하는데 시간이 오래 걸려서 혹시 백업이 되어있는지 아니면 파일이 그대로 남아있고 컨테이너를 복원할 수 있는지 궁금합니다. 이미지에는 신경쓰지 말고 컨테이너에만 신경쓰세요. 감사해요.
확인했지만 /var/snap/docker/common/var-lib-docker/containers
원래 컨테이너가 없습니다.
답변1
알고 보니 오랜 시간이 걸렸던 작업은 백업, 즉 스냅샷이었다. 로부터선적 서류 비치:
스냅샷은 snap save 명령을 사용하여 수동으로 생성되며 스냅이 제거되면 자동으로 생성됩니다(snapd 2.39+ 필요). 스냅샷을 사용하여 스냅 상태를 백업하고, 스냅을 이전 상태로 되돌리고, 새로운 snapd 설치를 이전에 저장된 상태로 복원할 수 있습니다.
내 버전을 확인했습니다 snapd
.
# snap --version
snap 2.52.1
snapd 2.52.1
series 16
ubuntu 21.04
kernel 5.11.0-40-generic
그런 다음 어떤 스냅샷을 사용할 수 있는지 확인했습니다.
# snap saved
Set Snap Age Version Rev Size Notes
1 docker 2h58m 20.10.8 1125 1.39GB auto
스냅샷이 정상인지 확인했습니다.
# snap check-snapshot 1
Snapshot #1 verified successfully.
마지막으로 자동 스냅샷을 복원했습니다.
# snap restore 1
Restored snapshot #1.
이 시점에서는 docker ps -a
복원하려는 컨테이너가 아닌 최신 설치 후 생성한 컨테이너가 계속 표시되었습니다. 아마도 새 컨테이너를 만들지 않았다면 제대로 작동했을 것입니다. 하지만 적어도 컨테이너 파일은 복원되었다는 것을 알고 있습니다 /var/snap/docker/common/var-lib-docker/overlay2/
. . 아무것도 없는 것보다는 낫습니다. 조심하세요 snap remove
!
원본 컨테이너 복원
내가 어떻게 이 상태에 이르렀는지 요약해 보겠습니다.
sudo snap remove docker
중요한 컨테이너를 닦아낸 실행sudo snap install docker
도커를 다시 설치하기 위해 실행했습니다 .docker-compose up
두 개의 새로운 컨테이너를 가져온 실행snap restore 1
자동 스냅샷을 복원하기 위해 실행되었습니다 .
이 시점에서 복원된 컨테이너 파일을 찾을 수 있었지만 docker ps -a
여전히 실제 컨테이너는 표시되지 않았습니다. 요약하자면, 전체 컨테이너를 다시 가져오기 위해 제가 수행한 작업은 다음과 같습니다.
- 필요하지 않았기 때문에 두 번째 설치 후에 보이는 모든 컨테이너와 이미지를 제거했습니다.
- 도커를 다시 제거하고
sudo snap remove docker
자동 스냅샷이 다시 발생하는 것을 확인했습니다."자동 스냅샷 세트 #2에 스냅 "docker"의 데이터를 저장합니다.". - 첫 번째 스냅샷을 다시 복원했습니다.
snap restore 1
이제 그렇게 하면 docker ps -a
모든 컨테이너를 중지된 상태로 다시 볼 수 있습니다! 하지만 한 가지 문제가 있습니다. 그 중 하나가 다음 메시지와 함께 시작되지 않습니다 Error: response from daemon: OCI runtime create failed: container with id exists:...
.
이 문제를 해결하기 위해 제가 찾은 가장 간단한 방법은 docker commit <container-id>
결과 이미지를 사용하여 새 컨테이너로 시작하는 것이었습니다. 괜찮은 것을 확인한 후 깨진 것을 제거했습니다. 모두 정상으로 돌아왔습니다!
그런데 볼륨을 사용하여 컨테이너에 데이터를 유지하는 것이 좋은 방법으로 간주됩니다. 이미지도 가능합니다저장됨아카이브로.