내가 필요한 Docker Image 만들기

내가 필요한 Docker Image 만들기

일단 Build your own images 문서를 참고해서 나의 이미지를 만들고 저장해봅니다.. 이미지에 넣을 것들은 대강 아래의 것들

docker ubuntu 이미지를 받아서 위의 것들을 추가한 방식으로 이미지를 만들예정이다. 그럼 최우선으로 ubuntu 이미지를 받아봅니다.

$ docker login //docker hub 로그인
$ docker pull ubuntu:14.04 //ubuntu 14.04 받기.
$ docker images //정상적으로 받아졌나 내 로컬 레포에서 이미지 확인

이미지를 받았으면 이제 들어가세.

$docker -t -i ubuntu:14.04
root@19ae698863b3:/#  //container안으로 진입!

Tool 설치

이미지 안에서 이제 모듈 설치를 위해 ubuntu의 apt-get update하고 주루룩 설치해봅니다.

JDK8 설치

일단 apt-get repository 업데이트

root@19ae698863b3:/# apt-get update

OpenJDK부터 삭제. 매번 충돌나고 뭐 짜증이남. ㅋ

root@19ae698863b3:/# apt-get purge openjdk*

java8을 받기위해 apt-get에 repository를 추가하려면 아래를 먼저 설치해야한다.이안에 우리가 필요로하는 ‘add-apt-repository’ 가 있어서.

root@19ae698863b3:/# apt-get install software-properties-common

jdk가 있는 repository를 추가한다 webupd8team은 oracle 공식 repo가 아닙니다;;

root@19ae698863b3:/# add-apt-repository ppa:webupd8team/java

repo가 신규 추가되었으니 다시한번 업데이트

root@19ae698863b3:/# apt-get update

이제 JDK8 설치!

root@19ae698863b3:/# apt-get install oracle-java8-installer

Java 설치 버전확인

root@19ae698863b3:/# java -version

nginx 설치

nginx를 받기 위한 repository 추가

root@19ae698863b3:/# add-apt-repository ppa:nginx/development

레포 추가했으니 다시 apt-get 업데이트

root@19ae698863b3:/# apt-get update

그럼 nginx 설치

root@19ae698863b3:/# apt-get install nginx

tomcat 설치

Tomcat9 설치는 직접 tar.gz을 받아서 압축을 풀고 원하는 위치에 설지한다.

root@19ae698863b3:/# wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-9/v9.0.0.M8/bin/apache-tomcat-9.0.0.M8.tar.gz

Tomcat9 tar.gz은 Apache Tomcat 9 사이트에서 주소를 확인한다.

gradle 설치

Gradle 설치도 한줄로 뙇

root@19ae698863b3:/# apt-get inatll gradle

git 설치

마지막 Git도 한방에 뙇!

root@19ae698863b3:/# apt-get inatll git

Docker 이미지 만들기

이제 이미지를 만들어볼 차례입니다. 우선 Docker container안에 접속하고 있다면 exit 명령어로 빠져나옵니다.

root@19ae698863b3:/# exit
$

Docker image를 만드는 것은 git과 비슷한 컨셉으로 해당 container상태를 repo정보,tag와 함께 commit을 하면 image가 생성이 됩니다. 이때 필요한 것이 container id 인데 자신의 container id를 모른다면 아래의 명령으로 이전에 수행된 container 이력을 통해서 확인할 수 있습니다.

$ docker ps -a

container id를 확인 하였으면 아래의 명령으로 commit을 합니다.

$ docker commit -m "initial commit" -a "nurinamu" {container_id} nurinamu/ubuntu:basic

Docker Image를 Docker hub에 올리기.

만들어놓은 이미지를 언제 어디서나 접근하기 위해서는 local이 아닌 remote 공간이 필요한데 Docker에서는 Docker Hub이라는 서비스를 제공하고 있습니다. 이제 이미지를 여기에 저장해보겠습니다. 하지만 이를 위해서는 우선 당연히 Docker Hub에 계정이 있어야합니다. 계정이 있거나 생성했다면 다음 명령어로 Docker hub에 접근합니다.

$ docker login

그럼 이제 image를 push합니다. git에 익숙한 분들은 commit/push/pull 명령어에 금방 익숙해지실 수 있습니다.

$ docker push nurinamu/ubuntu:basic

만약 위 명령에서 tag 없이 push 하면 같은 이미지이름을 가진 모든 태깅 이미지가 push 됩니다.

끝!