이미지 저장 및 gzip 압축
이 마지막 단계에서는 Docker 이미지를 tar 아카이브에 저장하고 동시에 gzip 을 사용하여 압축하는 방법을 배우게 됩니다. 이는 저장된 이미지의 파일 크기를 줄여 저장 및 전송을 더 쉽게 만드는 일반적인 방법입니다.
docker save 명령 자체에는 내장된 압축 플래그가 없습니다. 그러나 docker save의 출력을 gzip과 같은 압축 유틸리티로 파이핑하여 압축을 수행할 수 있습니다.
이전 단계에서 가져왔어야 하는 alpine 이미지를 저장하고 gzip을 사용하여 압축합니다. 출력은 .tar.gz 확장자를 가진 파일로 리디렉션됩니다.
구문은 출력을 파이핑하는 방식으로, docker save <image_name> | gzip > <output_file.tar.gz>입니다.
alpine 이미지를 ~/project 디렉토리에 있는 alpine.tar.gz라는 gzipped tar 파일에 저장해 보겠습니다.
docker save alpine | gzip > alpine.tar.gz
이 명령은 alpine 이미지를 표준 출력에 저장하고, 해당 출력을 압축을 위해 gzip 명령으로 파이핑한 다음, 압축된 출력을 alpine.tar.gz 파일로 리디렉션합니다.
이 명령을 실행하면 ~/project 디렉토리에 alpine.tar.gz라는 파일이 생성됩니다.
ls -lh 명령을 사용하여 파일이 생성되었는지 확인하고 크기를 확인할 수 있습니다. 압축 효과를 확인하기 위해 압축되지 않은 alpine 이미지 크기 ( images.tar의 일부이거나 개별적으로 저장한 경우) 와 크기를 비교하십시오.
ls -lh alpine.tar.gz
다음과 유사한 출력을 볼 수 있습니다.
-rw-r--r-- 1 labex labex ... alpine.tar.gz
파일이 gzipped tar 아카이브인지 확인하려면 file 명령을 사용할 수 있습니다.
file alpine.tar.gz
출력은 gzip 압축 데이터 파일임을 나타내야 합니다.
alpine.tar.gz: gzip compressed data, ...
tar -tfz를 사용하여 압축된 아카이브의 내용을 나열할 수도 있습니다. z 플래그는 내용을 나열하기 전에 tar에게 gzip 을 사용하여 파일을 압축 해제하도록 지시합니다.
tar -tfz alpine.tar.gz
images.tar의 내용을 나열했을 때와 마찬가지로 아카이브 내에 alpine 이미지의 내용이 표시되어야 합니다.
...
alpine/
alpine/manifest.json
...
이 방법은 단일 명령으로 이미지를 저장하고 압축하는 데 효율적입니다.