본문 바로가기

Infra

[Infra] EC2 서버에서 Docker 사용하기

함부로 설치하게되면 Docker 통신에서 오류가 날 수 있으니 설치는 무조건 공식 홈페이지에 나와있는대로 따라하는 것이 좋다.

 

 

1. Docker 설치

https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository

 

Install Docker Engine on Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

docs.docker.com

Docker install for Linux

서버에 들어가서 위의 명령을 그대로 입력해주기만 하면 설치가 완료된다.

 

2. Docker 설치 확인

Docker Example <1>

1. "docker --version"으로 설치버전을 확인 할 수 있다.

2. "docker ps"는 현재 docker daemon위에서 실행중인 container들을 보여준다.

3. "docker images"는 현재 나의 서버에 저장된 image들을 보여준다.

 

기타 다른사항 명령어는 구글에 검색하면 자세히 설명된 블로그가 많으니 참고하길 바란다.

 

3. Docker Image 만들어서 Container로 실행해보기.

★공통사항★

Dockerfile => Docker Image => Docker Container 순으로 진행된다.

 

 

 

3.1 Nginx 

1. Nginx Dockerfile 만들기.

EC2 nginx Dockerfile <1>

"명령어 해석"

1. nginx를 기반으로 실행할것이다.

2. 호스트의 80번 포트를 이 컨테이너로 연결할 것이다.

3. 현재 위치의 default.conf 파일을 컨테이너의 /etc/nginx/conf.d/default.conf 파일로 복사할 것이다. (생략 하세요.) 

4. nginx 실행

 

 

1. 특정 디렉토리를 만들고(sudo mkdir nginx), 해당디렉토리에 "Dockerfile"이름의 파일을 위와같은 내용을 저장한다(sudo vi Dockerfile).

 

2. Nginx DockerImage 만들기.

1. Dockerfile이 있는 디렉토리로 이동한뒤(cd nginx) 다음 명령어 실행

2. "docker build ."

EC2 nginx Dockerfile <2>

한줄 한줄이 Docker Layer라고 보면 된다.

Docker images로 생성여부 확인

 

3. Nginx DockerContainer 만들기.

Docker run 'REPOSITORY:TAG' 실행후 Docker ps로 실행여부 확인

 

3.2 React

1. React Dockerfile 만들기.

3.1 nginx와 굉장히 유사하나 npx next build  또는 npm run build를 통해 파일을 빌드하고 빌드된 html 파일을 디렉토리로 옮기고 해당 디렉토리를 기본 주소(페이지)로 사용할것을 명시해줘야 한다.

2. React DockerImage 만들기.

3.1 nginx와 굉장히 유사

3. React DockerContainer 만들기.

3.1 nginx와 굉장히 유사

3.3 SpringBoot

1. SpringBoot Dockerfile 만들기.

3.1 nginx와 굉장히 유사하나 우리가 Container로 만들 jar파일을 갖고 있으며 이것을 사용할 것을 명시 해줘야 한다.

 

2. SpringBoot  DockerImage 만들기.

3.1 nginx와 굉장히 유사

3. SpringBoot  DockerContainer 만들기.

3.1 nginx와 굉장히 유사

3.4 Mysql

1. Mysql Dockerfile 만들기.

3.1 nginx와 굉장히 유사

 

2. Mysql  DockerImage 만들기.

3.1 nginx와 굉장히 유사

 

3. Mysql  DockerContainer 만들기.

3.1 nginx와 굉장히 유사