본문 바로가기

⭐ AWS/AWS | Docker (도커)

EC2에서 Docker image 실행

# CodeCommit에 있는 데이터를 EC2에서 다운받아 Docker image로 빌드 후 서비스를 실행하는 과정

1. Docker image를 다운받을 EC2 인스턴스를 생성

2021.10.24 - [AWS/EC2] - EC2 생성

 

EC2 생성

EC2 인스턴스 생성 1. 인스턴스 시작을 클릭하여 EC2 생성을 시작합니다. 2. 설치할 OS를 확인하고 선택을 클릭합니다. 3. 원하는 스펙을 선택하고 다음으로 넘어 갑니다. 4. 네트워크를 구성 후 다음

may9noy.tistory.com

2. aws configure를 통한 인증

2021.12.21 - [AWS/AWS CLI] - AWS CLI 자격증명 구성

 

AWS CLI 자격증명 구성

1.AWS Configure 구성 - 해당 경로로 이동하여 자격증명을 생성합니다. 자격증명은 해당 계정으로 로그인하는 아이디와 패스워드라고 이해하면 쉽습니다. - AWS 내 보안 자격증명 에서 엑세스 키와 시

may9noy.tistory.com

3. AWS CodeCommit 리소스 다운로드

CodeCommit에서 다운받을 폴더를 생성한다.

mkdir [다운받을 폴더]

# EC2에 접속하여 git clone을 하게되면 아래와 같이 사용자 이름과 패스워드를 넣으라는 화면이 나온다.

위의 문제를 해결하기 위해서는 AWS IAM에가서 git에 대한 자격증명을 생성해야 한다.

AWS IAM → 사용자 → 보안 자격 증명 탭으로 이동 후 화면 하단으로 이동하면 AWS CodeCommit에 대한 HTTPS Git 자격 증명 내용이 있다.

AWS CodeCommit에 대한 HTTPS Git 자격 증명

여기사 사용자를 생성하거나, 변경 등 작업이 가능하다. 이 자격증명 정보를 활용하여 EC2 인스턴스에서 로그인 후 git clone이 가능하다.

자격증명을 완료 후 아래와 같이 정상적으로 다운로드 되었다.

2021.12.27 - [AWS/CodeCommit] - Codecommit에 리소스 다운받기

 

Codecommit에 리소스 다운받기

# CodeCommit에 업로드 되어있는 리소스를 다운받기 1. IAM에서 AWSCodeCommitPowerUser 권한을 해당 유저에게 부여 합니다. - 기존 정책 직접 연결에서 해당 정책 관련하여 검색 후 권한을 부여 합니다. - 여

may9noy.tistory.com

4. Docker image 생성하기

Dockerfile이 있는 폴더로 이동 후 아래의 명령어를 실행하여 Docker image를 생성한다.

. 은 현재 경로에 Dockerfile이 있기때문에 root 경로를 표시한 의미이다.

경로가 다른곳에 있다면, Dockerfile의 경로를 입력해 주면 된다.

docker build -t [생성할 이미지 이름] .

Dockerfile의 구조 예시)

설명 : 내일 작성 책보고...

FROM centos:7
RUN yum -y update &&  yum -y install initscripts && yum -y install git && yum -y install java-11-openjdk && yum -y install wget && yum -y install telnet && yum -y install net-tools && yum clean all && yum clean metadata && rm -rf /var/cache/yum/*
VOLUME /tmp
ARG JAR_FILE
WORKDIR /
COPY ${JAR_FILE} api.jar
COPY entrypoint.sh entrypoint.sh
RUN chmod 755 /entrypoint.sh
RUN mkdir /logs
RUN touch /logs/app.log
WORKDIR /
EXPOSE 7777/tcp
ENTRYPOINT ["sh", "entrypoint.sh"]

5. 생성한 Docker image를 실행

sudo docker image 를 입력하여 docker 이미지 리스트를 확인한다.

sudo docker ps -a 를 입력하여 현재 실행되고 있는 컨테이너 정보를 확인한다.

docker 실행 명령어 예시 )

docker run -p port_number:port_number [docker_image_name]
docker run -p 80:80 apache_web_server

포트포워딩 예시: docker run -p 9000:80 example → 80번 포트로 서비스되는 정보를 9000번으로 포트 포워딩 한다. 한마디로 80으로 들어오는 서비스를 9000번으로 바인딩 시켜서 웹페이지에서는 원래 http://0.0.0.0:80으로 접속되는 서비스를 http://0.0.0.0:9000 으로 서비스가 접속 되도록 한다.

# 모든 도커 컨테이너를 삭제하는 명령어

sudo docker rm -f `sudo docker ps -a -q`

# Docker Container의 세부 정보를 확인

sudo docker inspect [docker_container_id]

# Docker Container 내부로 접속하기

내일...