# Node Docker 的使用方法
# Node Docker 官方教學
https://hub.docker.com/_/node/ (opens new window)
# docker-compose 方法
- 於專案目錄建立一個
docker-compose.yml
version: "2"
services:
node:
image: "node:8"
environment:
- NODE_ENV=production
volumes:
- ./:/usr/src/app
expose:
- "3000"
- 使用以下指令使用虛擬機
# start
$ docker-compose up -d
# stop
$ docker-compose down
# list status
$ docker-compose ps
# show logs
$ docker-compose logs
# enter terminal
$ docker-compose exec node bash
# 搭配 express 4 使用
version: "2"
services:
node:
image: "node:latest"
environment:
- DEBUG=app:*
volumes:
- ./:/usr/src/app
expose:
- "3000"
ports:
- "3000:3000"
init: true
command: bash -c "cd /usr/src/app && npm start"
# 使用 Dockerfile + 指令
- 撰寫
Dockerfile
# specify the node base image with your desired version node:<version>
FROM node:6
# replace this with your application's default port
EXPOSE 3000
- 使用以下指令來 build 和執行
# build
$ docker build -t my-nodejs-app .
# run
$ docker run -it --rm --name my-running-app my-nodejs-app bash -c "cd /usr/src/app && npm start"
# Best Practices 最佳做法
https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md (opens new window)
# docker-bench-security
Docker Bench for Security 是一個用來檢查在正式環境中,部署容器的幾十個常見最佳做法的腳本。
https://github.com/docker/docker-bench-security (opens new window)