본문 바로가기
Devops/Docker

[Docker] Docker 이미지 다루기 (1)

by 볼링치는 개발자 2021. 6. 11.
반응형

이번 포스팅에서는 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

댓글