[docker] ova to docker img 변환하기
- 꼬반
- 2017. 11. 10. 17:15
이번에 회사에서 일을 하면서 ova 파일로 교육을 진행하게 되었다.
그런데 ova파일은 아무래도 실습, 교육환경을 준비하는게 매우 번거로워서
도커 컨테이너로 바꿀수 있는지 찾아보았다.
결과부터 적어보자면 변환도 가능하고 정상적으로 실행도 해보았으나 중간 처리 과정에
시간이 꽤 걸려서 실제 사용을 하기엔 어려워 보였지만 기록을 남긴다.
대상 ova : 30G
import 용량 : 60G
1. ova 파일을 tar xvf 로 압축을 해제
2. 안에 포함된 .vmdk 파일을 qemu-img 를 통해 raw 파일로 변환
3. 변환한 raw 파일을 guest 를 이용하여 가상 filesystem 으로 마운트 후 처리과정
4. 변환된 파일을 docker import 를 통해 img 로 등록
5. 등록한 img 파일을 실행.
위 순서로 진행되었다.
30G 파일은 qemu-img 를 통해 50G 파일의 .img 파일로 변환
이 파일은 guest 를 통해 16G 파일로 변환 됨
16G 파일은 docker import 후 31.3GB 이미지로 등록 됨
docker import 시 docker의 기본 device mapper 용량은 10G로 되어 있어서
import 해주려면 dockerd 옵션에 dockerd --storage-opt dm.basesize=60G 로 실행 시켜줘야 한다. 물론 이전 처리 과정도 있음
참고 : https://jpetazzo.github.io/2014/01/29/docker-device-mapper-resize/
다만 위 과정은 기존 컨테이너, 이미지 등이 모두 지워지므로 주의해야 한다.
변환을 위해 참고한 주소
참고 : https://stackoverflow.com/questions/31321076/how-to-convert-a-vagrant-box-to-a-docker-image
참고 : http://noizbuster.github.io/2016/04/20/2016-04-20-ova-to-dockerimg/2016-04-20-ova-to-dockerimg/
참고 : https://blog.inslash.com/how-to-convert-vmdk-to-a-docker-image-be939745ed8a
결론 : 처음부터 도커로 작업을 하자.