[podman] docker에서 podman으로 마이그레이션하기

개요

  사용중인 개발서버의 EoS(End of Support) 도래로 운영체제를 바꾸는 대작업을 하게 되었다. 그중 컨테이너를 구동하는 Docker를 Podman으로 마이그레이션 하는 과정을 기록한다. Docker로 커밋(commit) 및 저장(save)한 이미지를 Podman을 사용하여 로드(load)하고 실행할 수 있다. Docker와 Podman은 모두 OCI(Open Container Initiative) 표준을 준수하기 때문에, Docker로 생성된 이미지는 Podman에서도 사용할 수 있다.

 

백업

  • 실행중인 도커 컨테이너 그대로 이미지로 생성(커밋)한다.
docker commit <container_id> my-custom-image:latest

 

  • 커밋한 이미지를 아카이브 파일로 저장한다.
docker save my-custom-image:latest -o my-custom-image.tar

 

복구

docker와 podman은 상호 호환되는 명령어가 많다. 본문에서는 podman으로 마이그레이션하지만, 'docker'로 명령어만 변경하면 도커에서 그대로 실행할 수 있다.

podman load -i my-custom-image.tar

 

로드된 이미지를 사용하여 컨테이너를 실행한다.

podman run -d --name my-container my-custom-image:latest

 

결론

  간단하게 전환할 수 있는 반면에 podman이 가진 장점이 많다. 데몬으로 구동되지 않아 단일 실패 지점이 없고, 호스트 시스템의 root 권한과 관련 없이 완전한 가상화가 가능한 점 등 선택하지 않을 이유가 없다.

반응형