Server/DevOps

[AWS] EC2 Docker 설치 및 컨테이너 실행 (+NGINX)

2022. 8. 25. 10:54
목차
  1. EC2에 NGINX설치하기
  2. EC2에 Docker 이미지 올리기
728x90
EC2에 NGINX를 설치해서 Reverse Proxy로 사용하도록 설정하는 과정과
AWS EC2를 생성한 뒤, 도커를 설치하고 도커 이미지를 컨테이너에 실행하는 과정에 대한 기록

 

 

 

EC2에 NGINX설치하기

amazon-linux를 사용하고 있기 때문에, amazon-linux ec2는 NGINX를 아래의 명령어로 입력해서 설치해야 한다.

sudo amazon-linux-extras install nginx1

 

 

// nginx 시작
sudo systemctl start nginx 

// nginx.conf 같은 설정 파일을 변경해 주었을 때, 재시작
sudo systemctl restart nginx

// nginx 상태 확인
sudo systemctl status nginx

 

 

nginx.conf를 따로 변경하지 않았기 때문에 기본 80으로 접속하면 root의 index.html로 연결된다.

nginx를 시작하고 netstat -an | grep 80으로 80포트가 listen을 하고 있는지 확인한다.

 

 

 

EC2 인스턴스의 퍼블릭 IPv4 DNS로 접속하면 다음과 같은 화면을 볼 수 있다.

주소를 복사 붙여넣기 하거나 http로 접속해야 한다.

개방 주소법을 클릭하게 되면 https가 앞에 붙기 때문에 '연결을 거부했습니다' 가 나온다.

 

 

 

 

EC2 '/' 위치에서 /etc/nginx/nginx.conf를 다음과 같이 수정한다.

server {
	listen         80;
	server_name    _;


	location / {
		proxy_set_header    Host                    $host;
		proxy_set_header    X-Forwarded-For         $proxy_add_x_forwarded_for;

		proxy_pass          http://127.0.0.1:3000;
	}
}

 

 

 

EC2에 Docker 이미지 올리기

[참고1] 사이트에 그림이 잘 되어 있어서 간략하게 따라 그려 보았다.

그림의 과정을 말로 설명하면 아래와 같다.

 

1. 프로젝트(nuxt.js)를 도커 이미지로 만들어서 도커 허브에 푸시한 다음,

2. EC2에서 도커허브에 있는 도커 이미지를 pull 한다.

3. 이미지를 실행시켜서 프로젝트를 실행한다.

 

 

 

도커 이미지로 만들기

(로컬 환경에 도커를 설치한 뒤 프로젝트를 도커 이미지로 만들어 두었기 때문에 해당 과정에 대한 정리는 생략)

이 사이트를 참고하여 도커를 공부하고, 프로젝트를 이미지로 만들었다😀 https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html

 

 

 

도커 허브에 푸시하기

도커 허브에서 (https://hub.docker.com/) Create Repository를 한다.

해당 프로젝트에서 다음의 명령어로 레파지토리에 푸시한다.

docker push 아이디/레파지토리 이름:tagname

이때, 로컬에서 만든 도커 이미지명과 레파지토리 명이 같아야 푸시가 된다.

(아이디/레파지토리 이름:tagname 이 형식이 같아야 하나봐요 이렇게 안 하니 에러가 나더라구요. 저도 정확한 건 아니니 아시는 분께서 댓글 달아주시면 매우매우 감사할 것 같아요😀👍)

 

 

푸시하게 되면 아래처럼 Tags and Scans에 새로 태그가 추가된다.

 

 

 

EC2에 도커 설치하기

ssh로 EC2에 접속한 뒤 아래의 과정을 실행한다.

// 도커 설치
sudo yum install docker

// 도커 실행
sudo systemctl start docker

// 도커 이미지 pull
sudo docker pull (docker_ID)/(project_name)

// 도커 컨테이너 실행
sudo docker run --name (name) -d -p 3000:3000 (docker_ID)/(project_name)

 

 

이제 EC2 인스턴스의 퍼블릭 IPv4 DNS로 접속하면 다음과 같은 화면을 볼 수 있다 :)

 

 

 


Reference

[참고1]

https://zzang9ha.tistory.com/360

728x90

'Server > DevOps' 카테고리의 다른 글

[AWS] Jenkins CI/CD 구축하기_(2)  (0) 2022.08.25
[AWS] Jenkins CI/CD 구축하기_(1)  (0) 2022.08.25
[AWS] EC2 생성 및 접속  (0) 2022.08.25
[AWS] EC2 리눅스 배포판 선택  (0) 2022.08.25
DevOps 팀의 Phase1 기록  (0) 2022.08.25
  1. EC2에 NGINX설치하기
  2. EC2에 Docker 이미지 올리기
'Server/DevOps' 카테고리의 다른 글
  • [AWS] Jenkins CI/CD 구축하기_(2)
  • [AWS] Jenkins CI/CD 구축하기_(1)
  • [AWS] EC2 생성 및 접속
  • [AWS] EC2 리눅스 배포판 선택
mean-ji
mean-ji
저년차 기록들mean-ji 님의 블로그입니다.
mean-ji
저년차 기록들
mean-ji
전체
오늘
어제
  • 분류 전체보기 (104)
    • 소개 (1)
    • Server (25)
      • DevOps (9)
      • Database (4)
    • Spring (11)
    • Spring Boot (0)
    • Java (6)
    • Kotlin (3)
    • Vue.js (12)
      • Nuxt (12)
    • Node.js (3)
      • Express (2)
    • Python (9)
      • Flask (2)
    • Git (9)
    • IDE & Tool (4)
    • TIL (16)
    • 생각 (2)
    • 토스 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
mean-ji
[AWS] EC2 Docker 설치 및 컨테이너 실행 (+NGINX)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.