devops/docker

docker를 활용한 web-was 설정하기

bokshiri 2023. 5. 31. 11:14

안녕하세요. 오랜만에 인사드리네요

이번 포스트에서는 docker container를 활용하여 간단하게 web-was를 구성하고 웹서버에서 받은 요청을 reverse-proxy를 활용하여 was로 마운팅하는 방법에 대해 다뤄보려고 합니다.

위 실습에서 웹서버는 nginx, was는 tomcat를 사용하도록 하겠습니다. windows 환경이라면 cmd창을, macOS 환경이라면 터미널을 열어주도록 합니다.


 1. docker hub에서 nginx와 tomcat의 이미지를 내려받습니다.

docker pull nginx:latest
docker pull tomcat:latest

 

2. 설치된 이미지를 컨테이너로 실행시킵니다.

docker run -it -d -p 80:80 --name kylen-nginx nginx:latest
docker run -it -d -p 8080:8080 --name kylen-tomcat tomcat:latest

 

    컨테이너를 구동한 후 다음 명령어를 실행하여 프로세스 목록을 확인합니다.
docker ps -a

(redis는 무시하셔도 됩니다. 개인 프로젝트에서 사용하고 있는 서버라서 해당 포스팅과는 연관이 없습니다.)

 

컨테이너를 실행할 때 -p 옵션으로 호스트의 포트포워딩을 사용하였기 때문에 localhost의 80번 포트는 nginx 컨테이너로, 8080포트는 tomcat 컨테이너로 포워딩 됩니다. 이제, / 경로로 접속하였을 때는 nginx에서 처리하고 /was 경로로 접속하였을 때는 nginx에서 받아 tomcat으로 마운팅시키도록 설정을 변경하는 작업을 진행하겠습니다.

 

우선 nginx 컨테이너로 접속합니다.

docker exec -it kylen-nginx /bin/bash

root 계정으로 접속이 된 것을 확인할 수 있습니다. 이제, index.html 파일을 찾아줍니다. 

find -name index.html

 

/usr/share/nginx/html 경로에 있네요. 해당 경로로 이동한 후 vim 에디터로 편집하겠습니다.

vim에디터가 없을 경우 설치해줍니다. (ubuntu 버전이므로 cent-os 사용자는 yum을 사용하도록 합니다.)

apt-get update
apt-get install vim

설치가 완료되면 vim에디터로 index.html을 열어줍니다.

html 태그를 넣어서 Hello Kylen을 넣어주도록 하겠습니다..

 

수정이 완료되면 저장 후 exit로 컨테이너를 빠져나와 nginx컨테이너를 재시작 해줍니다.

docker restart kylen-nginx

이제 브라우저에서 localhost로 접속하게 되면

다음과 같이 클라이언트의 요청을 처리하는 것을 확인할 수 있습니다.

글이 조금 길어진 관계로 톰캣으로 마운팅하는 과정은 다음 포스팅에서 이어서 작업하도록 하겠습니다.

'devops > docker' 카테고리의 다른 글

Spring Boot + Docker를 활용한 ELK Stack (1)  (0) 2023.07.22
docker를 활용한 web-was 설정하기 (2)  (2) 2023.05.31