이번 포스팅에서는 docker의 이미지를 다루고 핸들링하는 방법에 대해 포스팅해보겠습니다.
예를 들어 $ docker run -it ubuntu 명령어를 통해 ubuntu 이미지를 기반으로 한 컨테이너를 생성하고,
다음과 같은 명령어로 환경을 설정해봅니다.
$ docker run -it ubuntu
$ apt -y update; apt -y upgrade; apt -y install net-tools
그럼 이제 위 컨테이너는 apt update, upgrade가 모두 완료되고, net-tools가 설치된 컨테이너가 됩니다.
이 컨테이너를 다른 사람과 공유하기 위해 docker commit 명령어를 사용해 이미지를 생성해서 공유할 수 있습니다.
즉, apt update, upgrade, net-tools가 설치된 컨테이너로 이미지를 만들어서, 해당 이미지만 있으면 추후에는 apt upgrade, update, net-tools 등 설치를 안 해도 바로 사용 가능한 이미지입니다.
앞서 생성해준 컨테이너를 exit명령어로 나와줍니다.
다음 명령어를 입력해서 해당 컨테이너를 이미지로 만들어 줍니다.
$docker commit 4f8c my-first:1.0
4f8c는 아까 생성한 컨테이너의 id이고, my-first는 생성하고자 하는 이미지의 이름, 1.0은 태그입니다.
아래 실행 결과를 보시면, $ docker images 명령어로 이미지를 확인했을 때, 생성해준 my-first이미지를 확인할 수 있습니다.
이 my-first 이미지는 apt update, upgrade, net-tools가 다 설치된 ubuntu 이미지입니다.
이렇게 이미지를 저장하는 방법은, 개발환경자 자체를 컨테이너화 해서 여러 명과 개발환경을 공유할 수 있습니다.
이 이미지 파일만 넘겨주면 되기 때문입니다.
이는 생산성에 엄청난 차이를 불러 일으킵니다.
기존에 VMWare에서 host OS를 설치한 이미지 파일보다 훨씬 작은 용량인 105MB인 것을 확인할 수 있습니다.
이렇게 생성한 이미지로 다음과 같은 작업을 할 수 있습니다.
- save / load
- export / import
- docker hub에 업로드
save : 이미지를 tar 파일로 생성합니다. docker hub에 있는 이미지들처럼 layer들을 모두 저장합니다.
load : tar 파일로부터 이미지를 로드합니다.
export : 컨테이너의 파일 시스템을 tar파일로 생성합니다.
import : tar파일로부터 컨테이너의 파일 시스템을 로드합니다.
docker hub에 업로드
먼저 docker hub에 업로드하기 위해 $ docker login 명령어를 통해 로그인을 해줍니다.
docker hub 아이디, 비밀번호를 입력하면 정상적으로 로그인이 됩니다.
그리고 tag 명령어를 통해 업로드하고 싶은 이미지를 생성해줍니다.
$ docker tag [소스 이미지] [타깃 이미지]
생성해준 이미지를 push명령어를 통해 docker hub에 업로드해줍니다.
$ docker push [이미지]
Docker hub에 들어가서 확인해보면 방금 push 한 이미지가 있는 것을 확인할 수 있습니다.
그럼 현재 있는 이미지들을 다 지우고, 해당 이미지를 내려받아 보겠습니다.
먼저 이미지 파일들을 지워줍니다.
그리고 pull 명령어를 통해 이미지를 내려받아옵니다.
$ docker pull [이미지]
'Devops > Docker' 카테고리의 다른 글
[Docker] Dockerfile (1) (0) | 2021.06.11 |
---|---|
[Docker] Docker 이미지 다루기 (2) (0) | 2021.06.11 |
[Docker] Apache 사용해보기 (0) | 2021.06.10 |
[Docker] Docker Volume 사용하기 (0) | 2021.06.10 |
[Docker] Nginx 사용해보기 (0) | 2021.06.10 |
댓글