Docker 컨테이너는 Docker 이미지를 바탕으로 만들어지는데, 반대로 Docker 컨테이너를 바탕으로 이미지를 만들 수도 있음. 예를 틀어 톱레벨 리포지토리로 부터 공식 이미지를 바탕으로 컨테이너를 만들고, 환경에 맞도록 변경한 뒤 컨테이너로부터 다시 이미지를 만들 수 있음
컨테이너로부터 이미지 작성
: 컨테이너로부터 이미지를 작성하려면 아래와 같은 구문을 사용함
docker container commit [옵션] <컨테이너 식별자> [이미지명[:태그명]]
주요 옵션
--author, -a: 작성자를 지정함
--message, -m: 메시지를 지정함
--change, -c: 커밋시 Dockerfile 명령을 지정함
--pause, -p: 컨테이너를 일시정지하고 커밋함
컨테이너를 tar 파일로 출력
: Docker에서 가동 중인 컨테이너의 디렉토리/파일들을 모아서 tar 파일을 만들 수 있음. 이 tar 파일을 바탕으로 다른 서버에서도 같은 기능을 하는 컨테이너를 가동시킬 수 있음. tar 파일을 작성시 아래의 구문을 이용함
docker container export <컨테이너 식별자>
tar 파일로부터 이미지 작성
: 만들어진 tar파일 혹은 Linux OS 이미지의 디렉토리 파일로 부터 Docker 이미지를 만드는 구문은 아래와 같음
docker image import <파일 또는 URL> | - [이미지명[:태그명]]
이 명령에서 지정할 수 있는 파일은 하나뿐이므로 이미지로 만들 디렉토리나 파일들을 하나로 묶어 두어야 함
묶어두는 아카이브 파일의 종류는 다음과 같음(tar, tar.gz, tgz, bzip, tar,xz, txz)
이미지 저장
: 반대로 Docker 이미지를 tar파일로 저장할 수 있음. 이 때는 아래와 같은 구문을 사용
docker image save [옵션] <저장 파일명> [이미지명]
저장할 파일명은 –o 옵션을 지정함
이미지 읽어 들이기
: tar 파일로부터 이미지를 load하는 방법도 있음 이때는 아래와 같은 구문을 사용함
docker image load [옵션] <읽을 파일명>
읽어 들일 파일명은 -i 옵션을 지정함
• export/import와 save/load
: 컨테이너를 export하면 컨테이너를 작동시키는데 필요한 파일을 모두 압축 아카이브로 모을 수 있음. 그래서 이 경우 tar 파일을 풀면 컨테이너의 루트 파일 시스템을 그대로 추출할 수 있음. 반면, save를 이용하면 이미지의 레이어 구조도 포함된 형태로 압축 아카이브로 모을 수 있기 때문에 바탕이 되는 이미지는 같아도 명령어에 때라서 내부적인 디렉토리와 파일 구조가 달라지게 됨. 따라서 export로 작성한 것을 읽어 들일 때는 import를 이용하고 save로 작성한 이미지를 읽어 들일 때는 load를 사용함
불필요한 이미지/컨테이너를 일괄 삭제
: 사용하지 않는 이미지, 컨테이너, 볼륨, 네트워크를 일괄적으로 삭제하는 경우 아래와 같은 구문을 사용
docker system prune [옵션]
주요 옵션
--all, -a: 사용하지 않는 리소스를 모두 삭제함
--force, -f: 강제적으로 삭제함
'ComputerScience > Docker' 카테고리의 다른 글
[Docker] 11. Dockerfile 명령 및 데몬 실행 (1) (0) | 2019.05.16 |
---|---|
[Docker] 10. Dockerfile을 사용한 구성 관리 (0) | 2019.05.14 |
[Docker] 8. 가동중 Docker 컨테이너 조작 (0) | 2019.05.04 |
[Docker] 7. Docker Container Network (0) | 2019.05.02 |
[Docker] 6. Docker Container Run (0) | 2019.04.27 |