Container/Docker

[Docker CE] 도커 이미지 활용 (이미지 파일 생성, 이미지 생성, 이미지 삭제)

Nirsa 2020. 1. 16. 10:23
반응형

 

이미지를 사용하여 컨테이너를 생성할 수 있듯이, 컨테이너를 사용하여 이미지를 생성할 수 있고, 해당 이미지 또는 컨테이너의 정보를 백업하기 위해 정기적으로 생성 후 파일로 남겨두어 별도로 백업 시스템을 구성할 수 있습니다.

그리고 아래 명령어들의 차이는 비슷해 보일 수 있지만 사용중인 컨테이너를 활용하여 이미지를 생성하는지, 이미지파일을 로컬로 다른 서버에 옮기기 위해 기존에 있는 이미지를 tar 파일로 생성하여 다시 이미지를 로드할 수 있는지의 차이가 있습니다.

 

<open /var/lib/docker/tmp/docker-import no such file or directory 발생 시 참고>

https://nirsa.tistory.com/56?category=868315

 

1. 사용중인 컨테이너를 이미지로 생성

기존에 사용중이던 컨테이너를 사용하여 이미지를 생성할 수 있습니다. 아래를 보면 nirsa 라는 사용자를 지정하고 (a옵션) 컨테이너 webserver 를 nirsa/webserver:1.0 ( [사용자명]/[이미지명]:[태그] )라는 이미지 생성 하였습니다.

  • docker container commit -a [사용자명] [컨테이너명] [사용자명]/[이미지명]:[태그]

 

2-1. 사용중인 컨테이너를 tar 파일로 생성

이중화 구성을 위해 기존 web1번 서버에서 새로운 web2번 서버로 동일 환경의 컨테이너를 옮길 때 사용할 수 있습니다. 컨테이너의 필요한 정보들을 tar 파일로 만들어 새로운 서버에 옮기고, 옮긴 서버에서 이미지로 변환하여 컨테이너 사용이 가능 합니다.

  • docker container ecport [컨테이너명] > [생성할 tar 파일명]

 

2-2 컨테이너로 생성한 tar 파일을 사용하여 이미지 생성

위의 2-1 에서 생성한 tar 파일을 사용하여 이미지를 생성 합니다.

  • docker image import [tar 파일명] [사용자명]/[이미지명]:[태그명]

 

3-1. 기존에 있던 이미지를 사용하여 tar 파일 생성

2번과는 다르게 컨테이너가 아닌, 이미지를 사용하여 tar 파일을 생성 합니다. 아래는 nginx 이미지를 사용하여 img_websvr.tar 이라는 파일을 생성 합니다.

  • docker image save -o [생성할 tar 파일명] [이미지명]

 

3-2 image save한 tar 파일을 이용하여 도커 이미지로 변환

3-1 에서 했던 image save한 tar 파일을 이용하여 docker image 로 변환 합니다. 

  • docker image load -i [tar 파일명]
반응형