소개
이 랩에서는 docker checkpoint create 명령을 사용하여 실행 중인 컨테이너의 상태를 저장하는 방법을 배우게 됩니다. 먼저, 체크포인트 작업을 위한 대상으로 사용할 간단한 Ubuntu 컨테이너를 시작합니다.
컨테이너 설정을 완료한 후, 실행 중인 컨테이너에 대한 체크포인트를 생성하여 현재 상태를 효과적으로 캡처합니다. 그런 다음 체크포인트가 성공적으로 생성되었는지 확인합니다. 마지막으로, 체크포인트를 생성하고 체크포인트 데이터를 저장하기 위한 사용자 지정 디렉토리를 지정하는 방법을 살펴봅니다. 이 실습을 통해 Docker 컨테이너 체크포인팅의 실제 적용을 보여줍니다.
체크포인트 생성할 컨테이너 시작
이 단계에서는 나중에 체크포인트할 간단한 Docker 컨테이너를 시작합니다. 체크포인팅을 사용하면 실행 중인 컨테이너의 상태를 저장하고 나중에 복원할 수 있습니다. 이는 컨테이너 마이그레이션, 디버깅 또는 스냅샷 생성에 유용합니다.
먼저, Docker Hub 에서 ubuntu 이미지를 가져와야 합니다. 이 이미지는 작고 데모에 적합합니다. LabEx 환경에서 터미널을 엽니다.
docker pull ubuntu
이미지가 다운로드되고 있음을 나타내는 출력을 볼 수 있습니다. 다운로드가 완료되면 이미지를 나열하여 이미지가 로컬에서 사용 가능한지 확인할 수 있습니다.
docker images
이미지 목록에서 ubuntu를 찾습니다.
이제 ubuntu 이미지를 기반으로 컨테이너를 시작해 보겠습니다. sleep infinity와 같이 컨테이너를 계속 실행하는 간단한 명령을 컨테이너 내부에서 실행합니다. 또한 나중에 참조하기 쉽도록 컨테이너에 이름을 지정합니다. my-checkpoint-container로 이름을 지정해 보겠습니다.
docker run -d --name my-checkpoint-container ubuntu sleep infinity
-d 플래그는 컨테이너를 detached 모드 (백그라운드에서 실행됨) 로 실행합니다. --name 플래그는 컨테이너에 이름을 할당합니다. ubuntu는 우리가 사용하는 이미지이고, sleep infinity는 컨테이너 내부에서 실행되어 컨테이너를 활성 상태로 유지하는 명령입니다.
명령을 실행한 후 Docker 는 전체 컨테이너 ID 를 출력합니다. 활성 컨테이너를 나열하여 컨테이너가 실행 중인지 확인할 수 있습니다.
docker ps
Up 상태의 my-checkpoint-container라는 컨테이너가 목록에 표시되어야 합니다. 이는 컨테이너가 실행 중이며 다음 단계에서 체크포인트할 준비가 되었음을 확인합니다.
실행 중인 컨테이너에 대한 체크포인트 생성
이 단계에서는 이전 단계에서 시작한 실행 중인 컨테이너에 대한 체크포인트를 생성합니다. 컨테이너를 체크포인팅하면 메모리, 프로세스 및 파일 시스템 변경 사항을 포함하여 현재 상태가 디스크에 저장됩니다. 이를 통해 컨테이너를 일시 중지하고 체크포인트가 생성된 정확한 지점부터 나중에 다시 시작할 수 있습니다.
체크포인트를 생성하려면 docker checkpoint create 명령을 사용합니다. 이 명령에는 컨테이너 이름과 체크포인트 이름이 필요합니다. 체크포인트 이름을 my-first-checkpoint로 지정해 보겠습니다.
docker checkpoint create my-checkpoint-container my-first-checkpoint
Docker 가 컨테이너의 상태를 저장하므로 이 명령을 실행하는 데 잠시 시간이 걸립니다. 명령이 성공하면 많은 출력을 볼 수 없습니다.
체크포인트를 생성한 후에도 my-checkpoint-container 컨테이너는 계속 실행됩니다. 체크포인팅은 컨테이너를 중지하지 않습니다. 단순히 상태의 스냅샷을 생성합니다.
다음 단계에서는 체크포인트가 성공적으로 생성되었고 사용 가능한지 확인합니다.
생성된 체크포인트 검증
이 단계에서는 이전 단계에서 생성한 체크포인트가 존재하고 컨테이너와 연결되어 있는지 확인합니다. Docker 는 특정 컨테이너에 대한 체크포인트를 나열하는 명령을 제공합니다.
my-checkpoint-container에 대한 체크포인트를 나열하려면 컨테이너 이름 뒤에 docker checkpoint ls 명령을 사용합니다.
docker checkpoint ls my-checkpoint-container
이 명령은 지정된 컨테이너에 사용할 수 있는 체크포인트 목록을 표시합니다. 출력에 my-first-checkpoint가 나열되어야 합니다. 이는 체크포인트가 성공적으로 생성되었으며 필요한 경우 컨테이너의 상태를 복원하는 데 사용할 준비가 되었음을 확인합니다.
체크포인트를 나열할 수 있는 기능은 특히 단일 컨테이너에 대한 여러 체크포인트 또는 다른 컨테이너에 대한 체크포인트를 가지고 있는 경우 체크포인트를 관리하는 데 중요합니다.
다음 단계에서는 다른 디렉터리에서 체크포인트를 생성하는 방법을 살펴봅니다.
사용자 지정 디렉토리를 사용하여 체크포인트 생성
이 단계에서는 원하는 특정 디렉터리에 체크포인트를 생성하는 방법을 배웁니다. 기본적으로 Docker 는 Docker 데이터 루트 디렉터리 내의 표준 위치에 체크포인트를 저장합니다. 그러나 다른 디스크 또는 공유 스토리지와 같이 다른 위치에 체크포인트를 저장할 수 있습니다.
체크포인트에 대한 사용자 지정 디렉터리를 지정하려면 docker checkpoint create 명령과 함께 --checkpoint-dir 플래그를 사용합니다. 먼저, 체크포인트를 저장할 홈 디렉터리에 새 디렉터리를 생성해 보겠습니다.
mkdir ~/project/my-checkpoints
이제 실행 중인 컨테이너 my-checkpoint-container에 대한 다른 체크포인트를 생성할 수 있지만, 이번에는 ~/project/my-checkpoints 디렉터리를 체크포인트 위치로 지정합니다. 이 새 체크포인트의 이름을 my-second-checkpoint로 지정해 보겠습니다.
docker checkpoint create --checkpoint-dir ~/project/my-checkpoints my-checkpoint-container my-second-checkpoint
이 명령은 ~/project/my-checkpoints 디렉터리 내에 체크포인트 데이터를 생성합니다. 이 디렉터리의 내용을 확인하여 체크포인트 파일을 볼 수 있습니다.
ls ~/project/my-checkpoints/my-second-checkpoint
체크포인팅 프로세스에 의해 생성된 여러 파일과 디렉터리를 볼 수 있습니다.
사용자 지정 디렉터리를 지정했음에도 불구하고 체크포인트는 여전히 컨테이너와 연결되어 있습니다. 컨테이너에 대한 체크포인트를 다시 나열하면 my-first-checkpoint와 my-second-checkpoint가 모두 나열됩니다.
docker checkpoint ls my-checkpoint-container
이는 Docker 가 저장 위치에 관계없이 체크포인트를 추적함을 보여줍니다. 사용자 지정 디렉터리를 사용하면 체크포인트 데이터를 보다 유연하게 관리할 수 있습니다.
요약
이 랩에서는 docker checkpoint create 명령을 사용하여 실행 중인 컨테이너의 상태를 저장하는 방법을 배웠습니다. 먼저 docker run -d --name my-checkpoint-container ubuntu sleep infinity를 사용하여 my-checkpoint-container라는 이름의 간단한 ubuntu 컨테이너를 시작하여 분리 모드에서 실행되도록 했습니다. docker ps를 사용하여 컨테이너의 상태를 확인했습니다.
그 후, 실행 중인 컨테이너에 대한 체크포인트를 생성하는 과정을 진행했습니다. 이 프로세스에는 docker checkpoint create 명령을 사용하여 메모리 및 프로세스를 포함한 컨테이너의 현재 상태를 캡처하여 나중에 복원할 수 있도록 하는 작업이 포함됩니다. 또한 체크포인트의 성공적인 생성을 확인하고 체크포인트 데이터를 저장하기 위한 사용자 지정 디렉터리를 지정하는 방법을 살펴보았습니다.



