Docker 컨테이너를 일시 중지한 다음 호스트 시스템을 다시 시작하고 컨테이너 일시 중지를 해제하려면 어떻게 해야 합니까?

Docker 컨테이너를 일시 중지한 다음 호스트 시스템을 다시 시작하고 컨테이너 일시 중지를 해제하려면 어떻게 해야 합니까?

호스트 OS 재부팅이 필요한데, 실행 중인 컨테이너의 상태를 저장하고, 호스트 시스템 재부팅 후 저장된 시점부터 컨테이너를 다시 시작하려면 어떻게 해야 하나요?

답변1

Docker의 실험적 옵션을 구성합니다.

$ sudo nano /etc/docker/daemon.json

다음에 추가

{
"experimental": true
}

Ctrl+X를 누르고 Y를 선택한 다음 Enter를 눌러 새 파일을 저장합니다.

또는

$ sudo echo '{"experimental": true}' >> /etc/docker/daemon.json

도커 서비스를 다시 시작합니다.

$ sudo service docker restart

확인해보세요

$ docker version

실제로 실험이 활성화된 경우

CRIU 패키지 설치

$ sudo apt-get install criu

CRIU에서 Docker 체크포인트를 사용하여 간단한 시나리오를 시도해 보세요.

docker run --security-opt=seccomp:unconfined --name cr -d busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'

값 확인:

docker logs cr

컨테이너에 대한 체크포인트를 만듭니다.

docker checkpoint create  --leave-running=true cr checkpoint0

컨테이너를 잠시 실행한 후 로그를 다시 확인하세요.

$ docker logs cr

이제 컨테이너를 중지합니다.

$ docker stop cr

체크포인트에서 컨테이너를 다시 시작/다시 생성합니다.

docker start --checkpoint checkpoint0 cr

로그를 확인하세요.

docker logs cr

체크포인트가 생성된 값으로 로그가 복원된 것을 확인할 수 있습니다.

https://technology.amis.nl/2018/04/08/first-steps-with-docker-checkpoint-to-create-and-restore-snapshots-of-running-containers/

관련 정보