I can do it(Feat. DEV)

[docker]JDK1.8 설치하기(1)(feat. 폐쇄망) 본문

개발자 모드/개념

[docker]JDK1.8 설치하기(1)(feat. 폐쇄망)

까짓거 해보자 개발자 2023. 6. 27. 16:48
728x90

이번에 폐쇄망으로 된 Web 서버 및 Was 서버를 세팅할 일이 있어서 

그전에 도커로 미리 연습 및 정리할 겸 이 글을 작성하게 됨.

 

📢이 글의 방향 설명

필자는 CentOs7 버전의 docker Image를 가져와 컨테이너 2개를 띄워

하나는 Web 서버, 하나는 Was 서버로 세팅할 생각임.

그리고 Was 서버는 톰켓을 3개 띄우고, Web 서버는 nginx를 설치하여

Web 서버로 접속해 Was 서버의 톰켓 화면(index.jsp)를 띄우는 게 최종 목표임.

폐쇄망이라 가정해 왠만해서 다운로드는 사용하지 않을 예정.

그럼 시작해보겠음!


시작하기 전 말씀드리지만 도커로 환경세팅을 하기 때문에 도커 데스크톱이 미리 설치되어있어야 함!

docker desktop 설치경로 : https://www.docker.com/products/docker-desktop/

 

Download Docker Desktop | Docker

Docker Desktop is available to download for free on Mac, Windows, or Linux operating systems. Get started with Docker today!

www.docker.com

openjdk 1.8 다운로드 경로 : https://github.com/AdoptOpenJDK/openjdk8-upstream-binaries/releases

 

Releases · AdoptOpenJDK/openjdk8-upstream-binaries

Archived release scripts/releases of OpenJDK 8u project builds. Superseded by Eclipse Temurin releases. - AdoptOpenJDK/openjdk8-upstream-binaries

github.com


1. 도커 컨테이너 생성

📌컨테이너 생성은 필자처럼 커맨드로 해도 되고 다른 방법을 사용해도 무관!

#버전정보
- CentOs7
- Open JDK 1.8
- Tomcat 9

 

도커를 실행한 상태로 cmd를 켜고

docker pull centos(이미지명):7(버전) 를 치면 centos7 image가 다운받아짐.

이미지 다운받은 화면(다른 이미지는 신경안써도 됨)

📝컨테이너 실행 명령어

docker run -d -it --name centos_was -v C:/Users/사용자/Desktop/tmp:/home/app -p 18887:18887 -p 18888:18888 -p 18889:18889 --privileged centos:7 /sbin/init

🔎컨테이너 실행 옵션 설명
-it   : 컨테이너를 종료하지 않은 채로, 터미널의 입력을 계속해서 컨테이너로 전달
 -d   : 컨테이너를 백그라운드에서 실행할 때 쓰는 명령어
>>컨테이너가 detached 모드에서 실행되며, 실행 결과로 컨테이너 ID만 출력

 -v   : 공유 디렉터리를 설정할 때 쓰는 명령어 / etc) -v 호스트 파일경로:컨테이너 파일경로
>>볼륨 옵션을 사용하면 설정한 폴더를 공유하기 때문에 컨테이너로 필요한 파일을 복사할 필요가 없음.
 --name   : 컨테이너명을 설정할 때 쓰는 명령어
 -e   : docker 컨테이너의 환경변수를 설정할 때 쓰는 명령어(필자는 쓰지 않았음)
 -p   : 호스트와 컨테이너 간의 포트 배포/바인드를 위해서 사용되며, 호스트 컴퓨터에서 컨테이너로 리스닝하고 있는 포트로 접속할 수 있도록 설정해 줌.(필자처럼 여러 포트 설정 가능)
 --privileged ... /sbin/init   : systemctl를 정상적으로 실행할 수 있게 해 주는 명령어
>>일반적으로 생성한 컨테이너는 호스트 시스템의 주요 자원에 접근할 수 없지만 이 명령어를 선언해 주면 접근 가능함
 --hostname   : 컨테이너에 접속했을 때 호스트명을 설정하고 싶으면 쓰는 명령어(필자는 쓰지 않았음)

위 명령어로 컨테이너를 만들고 실행시켰다면

docker ps를 쳤을 때 만든 컨테이너가 실행되고 있는 것을 볼 수 있음.

📝쓸만한 도커 컨테이너 관련 명령어(필자 주관적🤗)
- docker ps : 실행 중인 컨테이너 목록 조회 / 모든 컨테이너 조회하고 싶으면 -a 옵션 추가
- docker exec -it 컨테이너명 /bin/bash : 선언한 컨테이너의 터미널 접속 명령어
- docker rm 컨테이너명 : 해당 컨테이너 삭제 / 단, 실행 중인 컨테이너를 삭제하고 싶으면 -f 옵션 추가
728x90

2. OpenJDK1.8 설치

컨테이너의 터미널에 접속한 후 /home/app 경로로 이동

필자는 미리 받아놓은 OpenJDK1.8 tar 아카이브 파일을 준비했음

(혹시 다운로드하고 싶은 분들을 위해 상단에 링크 남겨놓음)

/home/app 경로의 open jdk 1.8 tar 아카이브 파일

cd /

mkdir was

mkdir was/jdk1.8

jdk1.8 폴더에 OpenJDK 1.8을 풀어줌.

 

📝아카이브 해제 명령어
tar zxf /home/app/OpenJDK8U-jdk_x64_linux_8u342b07.tar.gz -C /was/jdk1.8 --strip-components 1

🔎컨테이너 실행 옵션 설명
zxf /경로  : 대상 tar 아카이브 지정해서 파일 추출
-C  :  아카이브 파일을 풀 위치 지정
 --strip-components [number]  :  number 단계만큼 파일 경로를 제외하고 tar 아카이브 해제하기 명령어

하면 /was/jdk1.8 폴더에 OpenJDK1.8 설치완료.


3. 환경변수 설정

환경변수를 설정하기 위해서는 /etc/profile 파일을 수정해야 함.

vi 편집기를 사용하여 수정 진행함.(vi or vim 편집기가 없으면 설치진행)

vi /etc/profile : 편집기로 profile 파일 수정

#추가구문
export JAVA_HOME=/was/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

해당 명령어를 맨 밑에 추가 후 저장

이후 source /etc/profile 명령어를 사용해 적용시키면 끝!!

 

아무 경로에서 java -version / javac 명령어를 쳤을 때 이런 식으로 나온다면 합격👍

java -version / javac 명령어 입력 시 화면

다음 글에선 Was 서버에 톰켓을 설치하고

고양이가 나오는 index.jsp 화면을 띄우는 걸 진행해 보겠음!!😉

728x90