Skip to content

Instantly share code, notes, and snippets.

@didyhu
Created December 13, 2019 04:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save didyhu/877bbb31c569f488f79a56d8f5049e77 to your computer and use it in GitHub Desktop.
Save didyhu/877bbb31c569f488f79a56d8f5049e77 to your computer and use it in GitHub Desktop.
Run Node on Docker

Run Node on Docker

Config

  1. Dockerfile

    FROM node:{NODE_VER}
    WORKDIR /opt/app
    COPY ./package*.json ./*.lock ./
    RUN yarn --only-production
    COPY ./ .
    EXPOSE 8080
    CMD ["node","path/to/server.js"]
    
  2. .dockerignore

    bin/
    npm-debug.log
    

Build

sudo docker build . -t {name:rev}

Start

sudo docker run -p{HOST_PORT}:8080 -d {name:rev}

Publish

sudo docker login --username={username} {registry}
sudo docker tag test:dev {registry}/{repo}/{name:rev}
sudo docker push {registry}/{repo}/{name:rev}

Deploy

sudo docker login --username={username} {registry}
sudo docker pull {registry}/{repo}/{name:rev}
sudo docker run -e ENV1=env1 -e ENV2=env2 -p{HOST_PORT}:8080 --restart=always -d {name:rev}

Others

# 列出运行中的容器
sudo docker ps
# 列出所有的容器
sudo docker ps -a
# 打印容器输出
sudo docker logs {CONTAINER ID}
# 中止容器运行
sudo docker kill {CONTAINER ID}
# 启动容器
sudo docker start {CONTAINER ID}
# 删除容器
sudo docker rm {CONTAINER ID}
# 进入容器
sudo docker attach {CONTAINER ID}
# 删除未运行容器
sudo docker container prune
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment