givepro

Docker 기본 (Dockerfile 작성 및 컨테이너 실행까지) 본문

DevOps/Docker

Docker 기본 (Dockerfile 작성 및 컨테이너 실행까지)

givepro 2022. 10. 28. 14:05
반응형

전에 팀원들에게 Docker의 기본적인 작성 방법 및 실행에 대해 리뷰를 했었습니다.

포스팅으로도 남기면 좋을 것 같아서 작성해봅니다. :D

 

준비

Docker Container를 실행하는 과정을 간략하게 작성해봤습니다.

선행조건

  1. Docker 설치
  2. Node 설치 (꼭 노드가 아니어도 됨. 여기서는 간단하게 실행하기 위해 사용)

1. 간단한 Node 코드 작성

server.js 파일 생성 및 작성

var http = require('http');
var handleRequest = function(req, res) {
    res.writeHead(200);
    res.end('Hello World');
};

var www = http.createServer(handleRequest);
www.listen(8080);
console.log('server running on 8080');

Hello world 출력 가능하도록 작성

 

2. Node 실행 후 테스트

$ node server.js
server running on 8080

3. Dockerfile 작성

FROM node:12

WORKDIR /usr/src/app

COPY ./ ./

RUN npm install

CMD ["node", "server.js"]

4. Docker Build

$ docker build -t simple-node ./

5. Docker image 실행

$ docker run -p 3000:8080 simple-node
p 옵션 사용하는 이유

컨테이너 환경에서의 port와 컨테이너 외부에서 접속하는 port를 매핑시켜주어야 합니다.

우리가 node app에서 설정한 port는 컨테이너 환경에서의 port입니다. 하지만 우리가 브라우저를 통해 접속하는 것은 컨테이너 외부에서 접속하는 것이기에 port 정보를 매핑 시켜주어야 합니다. 예를 들어 우리가 브라우저에서 3000번 포트를 사용하여 접속한다면 3000번 포트를 컨테이너의 포트번호인 8080포트로 매핑시킬 수 있는 매핑 정보가 필요한 것입니다.
docker run -p [접속할 포트]:[컨테이너의 포트] [image-name] p 옵션을 이용하여 매핑정보를 설정할 수 있습니다.

 

출처

 

🐳 Docker를 이용한 간단한 node app 만들기 🐳

간단한 app을 Docker Image로 생성

velog.io

 

Comments