Docker/이미지 생성

Docker image 생성하기

PSAwesome 2019. 12. 4. 19:00
반응형

안녕하세요.

도커를 활용할 때 가장 불편했던 것 중 하나는 기본 command가 없다는 것이 아닐까 생각합니다.

제가 불편했기 때문에.. 이번 글은 ubuntu와 centos를 실행시켰을 때 항상 실행했었던 명령어들을 포함하고 있는

  1.  컨테이너를
  2.  이미지화 하여

지속적으로 사용할 예정입니다.

# apt-get update
# apt-get install sudo iputils-ping net-tools dnsutils 

저는 주로 웹을 다루기 때문에 java와 때로 apache를 사용합니다.

필요에 의해서 java도 설치한 컨테이너를 이미지화하여 활용할 수 있습니다.

 

명령어

docker commit -m "first commit" test_container centos:latest
  • docker commit [options] container [repository:[tag]]

 

예제로 학습

저에게 친숙한 ubuntu로 자주 사용하는 명령어를 설치해 놓은 후 이미지로 만들어보겠습니다.

  1. ubuntu 컨테이너 생성
  2. 필요한 package 설치
  3. 이미지화

 

우분투 컨테이너 생성

docker run -it --name ps_ubuntu ubuntu:latest
  • 저는 최신 버전을 좋아합니다.
  • 옵션에 --rm은 해당 컨테이너는 종료되면 삭제하라는 옵션입니다.

 

 

 

우분에 접근하여 필요한 package를 설치

# apt-get update

# apt-get install sudo iputils-ping net-tools dnsutils vim
-> Y 입력

 

 

 

ubuntu는 때로 java를 사용하지 않을 때가 있기 때문에 이 예제에서 설치하지 않았습니다.

설치가 끝난 후 Ctrl + P, Ctrl + Q 를 입력하여 컨테이너를 빠져나옵니다.

 

이미지 commit

docker commit -m "install default command first commit" -a "psawesome"  ps_ubuntu ps_ubuntu:default
  • -m : commit message를 의미합니다. ( git -m 키워드랑 같습니다.)
  • -a : author를 의미하며, 해당 메타데이터는 이미지에 포함됩니다.
  • :default : tag를 의미합니다. 태그별 다른 이미지를 만들어 놓을 수 있습니다.

 

 

생성된 이미지 확인

docker images

 

 

기본 우분투의 이미지 size는 64.2MB, default image는 203MB가 되었습니다. 원하는대로 이미지가 생성되었습니다.

 

해당 컨테이너에 접근하여 :default tag에 설치한 명령어들이 제대로 되어있는지 확인해봅니다.

생성한 이미지를 컨테이너화 하기

docker run -it --rm --name ps_ubuntu2 ps_ubuntu:default

 

Ubuntu 내부에서 바로 명령어 실행해보기.

# sudo
# ping
# vim

 

이 작업은 현 시점에서 update하는 과정이 있기 때문에 만능 작업은 아닐 것입니다. 그러나 docker를 익히는 과정에서는 충분히 도움이 될 것으로 예상합니다.

 

감사합니다.

 

 

반응형