안녕하세요. 초보 개발자입니다.


오늘은 Docker를 이용해서 우분투 및 JDK8을 한번에 설치해 보도록 하죠.


도커를 이용해서 컨테이너를 띄우는 방법은 2가지가 있습니다.


1. Docker File을 이용해서 띄우는 방법

2. 사전에 정의된 Docker image를 이용해서 띄우는 방법


오늘은 1번에 도전해 보겠습니다.


어플리케이션 서버를 활용하기 위해서는 jdk가 필요합니다.

오늘은 우분투에 jdk8을 한번에 설치하도록 도전해 봅시다.


저는 도커가 미리 설치되어 있다고 가정하고 진행합니다.

혹시 도커 설치가 안되어 있으신 분은 https://www.docker.com/get-docker 에서 다운로드 받으시기 바랍니다.





[설치된 docker version 확인]

docker -v




도커는 준비되어 있네요.

그러면 도커파일을 준비해 볼까요?


[DockerFile]

FROM ubuntu

# File Maintainer
MAINTAINER gblee87

# Update the repository source list
RUN apt-get update;

# Install jdk8
RUN apt-get -y install software-properties-common && apt-add-repository -y ppa:webupd8team/java && apt update && echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections && apt install -y oracle-java8-installer

RUN echo "jdk 8  install completed"


  • FROM ubuntu : ubuntu 이미지로 부터 시작한다는 말입니다. 도커엔진은 해당 명령어를 읽으면 로컬레파지토리에 우분투 이미지가 있는지 확인하고 없으면 인터넷상의 공통 레파지토리에 접속하여 해당 이미지를 가져옵니다.
    (ps. 요즘은 core OS라는 상당히 가벼운 리눅스 버전을 많이 사용합니다만, core OS는 저도 아직 잘 모르니 우분투로 대신하겠습니다.)
  • MAINTAINER gblee87 : 누가 이파일을 만들었는지 명시하는 것입니다.
  • RUN apt-get update : RUN은 명령어를 실행(컨테이너)하라는 것이고 apt-get은 프로그램을 설치하는 패키지 관리자 입니다. apt-get update는 해당 패키지 관리자를 최신으로 업데이트 하라는 명령어 입니다.
  • Install jdk8 아래 부분: 오라클 jdk를 설치하기 위해 사용하는 명령어 입니다. 오라클 jdk는 자체적인 라이센스 accept 등 설치하는데 상당히 불편한 부분이 있기 때문에 위 스크립트로 자동화하여 사용합니다.
  • RUN echo : 우분투에서 echo로 " " 안의 내용을 출력하라는 명령어 입니다.




일단 도커 파일을 만들어 보죠


저는 ~/study/docekr/dockerFile/ubuntu_jdk8 이라는 디렉토리 하위에 해당 파일을 Dockerfile이라는 이름으로 만들어 두었습니다.



그럼 아래 명령어를 수행!

docker build --tag ubuntu_jdk:0.1 .


- docker build : Dockerfile 을 읽어 이미지를 생성하라는 명령어 입니다.

- tag : 이미지를 구분하는 역할을 하며 "이름:버전" 으로 구분할 수 있습니다.

- . : 현재 위치의 파일을 참조하라는 명령어 입니다.



이미지 파일을 확인해 보죠


docker images 라는 명령어를 사용하면 ubuntu_jdk 라는 태그로 이미지가 생성된 것을 확인할 수 있습니다.

여기서 IMAGE_ID 는 엔진이 임의로 부여하는 고유값이며 IMAGE ID로 컨테이너를 생성해도 됩니다.

현재는 도커 컨테이너가 띄워진 것이 아니기 때문에 컨테이너를 올리겠습니다.


아래 명령어를 사용하세요.

docker run -i -t --name ubuntu_jdk_container ubuntu_jdk:0.1 /bin/bash





명령 프롬프트가 root로 보이죠?

컨테이너를 실행하고 컨테이너에 접속한 상태입니다. 오라클 jdk도 올바르게 설치되었는지 확인해 보죠

java -version







+ Recent posts