AWS

[패스트캠퍼스 수강 후기] 올인원 패키지 : AWS/Docker 클라우드 서버구축👉AWS강의 100% 환급 챌린지 13 회차 미션

Ch05. DOCKER 활용하기

50. 도커 설치하기 & 컨테이너 접속하기
51. 도커 이미지 만들기 (Dockerfile) 및 실행 - 1
52. 도커 이미지 만들기 (Dockerfile) 및 실행 - 2


Docker 설치

aws ec2에서 docker를 설치하는 방법을 알아보자

docker 설치되어있는지 확인한다.

docker ps -a

yum 패키지로 docker를 설치한다.

sudo yum install docker-io --yes

설치후 docker deamon을 실행한다

sudo systemctl start docker

docker 권한 설정을 한다.

sudo setfacl -m user:ec2-user.rw /var/run/docker.sock

Docker 컨테이너 제어 명령어

jira-container이름이 컨테이너의 bash를 실행시키는 명령어이다.

docker exec -it jira-container /bin/bash

Docker 이미지 생성

aws ec2에서 docker 이미지를 직접 만들어본다. root 디렉토리로 이동하여 Dockerfile을 작성하자

cd /
vi Dockerfile

Dockerfile의 내용은 아래와 같다 tomcat9-jre8-alpine 이라는 이미지를 수정하여 새로운 도커 이미지를 만드는 것이다.

FROM tomcat:9-jre8-alpine 

# server.xml 복사
COPY server.xml /usr/local/tomcat/conf

# 기존 톰캣 파일 삭제 
RUN rm -rf /usr/local/tomcat/webapps/ROOT.war
RUN rm -rf /usr/local/tomcat/webapps/ROOT
RUN rm -rf /usr/local/tomcat/webapps/docs
RUN rm -rf /usr/local/tomcat/webapps/examples
RUN rm -rf /usr/local/tomcat/webapps/host-manager
RUN rm -rf /usr/local/tomcat/webapps/manager

# 새롭게 빌드된 스프링 프로젝트 복사
COPY ROOT.war /usr/local/tomcat/webapps

# 타임존 변경
ENV TZ=Asia/Seoul
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 8080포트 설정
EXPOSE 8080

docker 파일 작성 후 파일을 준비한다. root.war파일과 server.xml을 복사한다

cp /opt/tomcat/ROOT.war ~
sudo chmod 777 /opt/tomcat/conf
cp /opt/tomcat/conf/server.xml ~

docker 이미지를 생성한다.

docker build -t review/aws .

빌드된 도커 이미지를 확인할 수 있다.

docker images

도커 이미지 삭제

docker rmi [image id]

 

도커 이미지 변경내역 확인

docker image history [image id]

톰캣 중지 후 확인

sudo systemctl stop tomcat
sudo systemctl status tomcat

새롭게 만든 tomcat 이미지를 실행한다.

docker run --rm -d -p 8080:8080 review/aws

실행 중인 컨테이너에 접속하여 쉘 명령어로 로그를 확인 할 수 있다.

docker exec -it c694db07e79f /bin/bash

 


13일 차 마무리

스프링 프로젝트 ec2 환경을 docker로 이미지로 만드는 방법을 다루었다. 서버를 여러곳에 배포하고자 할때 docker를 사용하면 한번에 쉽게 배포가 가능하니 docker를 적극적으로 활용하는 방법을 고민해야겠다.


현재 수강 중인 강의는 아래와 같다
올인원 패키지 : AWS/Docker 클라우드 서버구축👉https://bit.ly/3bFlm0e