Connecting

Docker Node Example 본문

Container

Docker Node Example

팬도라 2019. 1. 8. 10:09
반응형

Docker Node Example

  • Node Express를 활용한 간단한 Dockerfile를 만들어서 Docker 이미지를 만들어보도록 하겠습니다.

  • 연구실은 Nexus를 통해서 Registry 구성이 완료되어 있으며, 관련 설정내용은 다음 링크에 자세히 설명되어 있으므로 참고하여 주시길 바랍니다.

주의사항

  • 본 문서는 Mac OS를 기준으로 작성되었습니다.

    • Linux 사용시 sudo를 반드시 사용해야 하며 윈도우의 경우 사용 방법이 상의할 수 있습니다.

    • Docker는 가급적 Linux에서 사용하는 것을 추천합니다.

기존 Docker 이미지 정리하기

$ docker stop $(docker ps -a -q)
$ docker rm $(docker ps -a -q)
$ docker rmi $(docker images -a -q)

Create node express application

  • 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('Hello world\n')
    });

    app.listen(PORT, HOST)
    console.log(`Running on http://${HOST}:${PORT}`)
  • Dockerfile

    FROM node:11

    # Create app directory
    WORKDIR /usr/src/app

    # Install app dependencies
    # A wildcard is used to ensure both package.json AND package-lock.json are copied
    # where available (npm@5+)
    COPY package*.json ./

    RUN npm install
    # If you are building your code for production
    # RUN npm install --only=production

    # Bundle app source
    COPY . .

    EXPOSE 8080
    CMD [ "npm", "start" ]
  • .dockerignore

    node_modules
    npm-debug.log

Building your image

$ docker build -t <username>/node-web-app .

$ docker images 

REPOSITORY                     TAG       ID             CREATED
node                            8         1934b0b038d1    5 days ago
<your username>/node-web-app   latest     d64d3505b0d2    1 minute ago

Run the image

$ docker run -p 8080:8080 -d  <username>/node-web-app

$ docker ps
$ docker logs <container id>

# Example
Running on the http://localhost:8080

$ curl -i localhost:8080

HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 12
ETag: W/"c-M6tWOb/Y57lesdjQuHeB1P/qTV0"
Date: Mon, 13 Nov 2017 20:53:59 GMT
Connection: keep-alive

Hello world


'Container' 카테고리의 다른 글

Docker Swarm으로 시작하는 오케스트레이션 - 1  (0) 2019.05.07
Docker Postgresql 설치 및 셋팅하기  (9) 2019.02.25
Docker Private Registry  (4) 2018.08.05
Docker Tutorials and Labs  (0) 2018.07.08
Dockerfiles 작성 우수 사례  (0) 2018.07.05
Comments