npm init
npm i --save express 를 통해 express서버를 구축해둔다.
server.js
"use strict";
const express = require("express");
const PORT = 8080;
const HOST = "0.0.0.0";
const app = express();
app.get("/", (req, res) => {
res.send("this is a hompage");
});
app.listen(PORT, HOST);
console.log(`Running On ${HOST}:${PORT}`);
Docker를 활용할수 있게 Dockerfile을 생성해준다.
Dockerfile
FROM node:latest
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD ["node","server.js"]
Dockerfile에 사용하는 명령어
FROM : 이미지를 생성할 때 사용할 기반 이미지를 지정한다. node의 최신버전을 활용하였다.
RUN : 이미지를 생성할 때 실행할 코드를 지정한다. 예제에서는 패키지를 설치를 위해 RUN을 사용했다(npm install)
WORKDIR : 작업 디렉토리를 지정한다. 해당 디렉토리가 없으면 새로 생성한다. 작업 디렉토리를 지정하면 그 이후 명령어는 해당 디렉토리를 기준으로 동작한다.
COPY : 파일이나 폴더를 이미지에 복사한다. 상대 경로를 사용할 경우 WORKDIR로 지정한 디렉토리를 기준으로 복사한다.
ENV : 이미지에서 사용할 환경 변수 값을 지정한다.
EXPOSE : 호스트와 통신할 port를 지정합니다.
CMD: container가 만들어질 때 실행할 명령어를 설정한다.
ENTRYPOINT : 컨테이너를 구동할 때 실행할 명령어를 지정한다.
준비가 다 되었다면 docker에서 사용할수 있는 이미지 형식으로 빌드를 해줘야한다.
powershell에서 docker build -t app . 을 통해 build를 진행한다.
빌드가 완료되면
docker run -p 8000:8080 -d app (포트를바인딩해서 build한 app을 실행
하면 정상적으로 실행이 된다.
docker ps -a 를 통해 현재 실행중인 docker를 확인할 수 있다. (docker stop containerID를 입력하면 중단된다)
localhost:8000 을 접속해보면
정상적으로 서버가 동작하는것을 알 수 있다.
Command Line으로 테스트하기
docker exec -it CONTAINERID /bin/bash 를 입력하면 bash shell을 통해 해당 컨테이너에 접근이 가능하다.
컨테이너에 접근하면 기본적으로 사용할수있는 명령어 체계들을 사용할 수 있다,
'Docker, CI' 카테고리의 다른 글
docker - docker compose (0) | 2020.12.26 |
---|---|
docker - node.js 어플만들기 (0) | 2020.12.26 |
docker- docker Image 만들기 (Dockerfile 작성및 이미지 생성) (0) | 2020.12.25 |
docker - 기본 명령어 (0) | 2020.12.25 |
docker- docker 정의 및 docker 설치하기 (0) | 2020.12.25 |