docker中部署node项目

120 阅读2分钟

我正在参加「掘金·启航计划」

docker的特点

一次构建,可以运行在任何地方;很好的释全了跨平台和强一致性

docker组件

  • 镜像:镜像可以用来创建Docker容器的。一个镜像可以包含一个完整的操作系统环境和用户需要的其它应用程序,docker的镜像是只可读的,一个镜像可以创建多个容器。

  •   容器:容器是镜像创建的实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

  •   仓库:仓库是集中存放镜像文件的场所。每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag)。

一切准备就绪,现在开始

↓↓↓↓↓↓↓↓↓↓↓↓

  1. 在项目文件夹同级目录创建一个名为Dockerfile的文件 文件目录如下: image.png Dockerfile文件内容
FROM node:latest 
// 拷贝文件 
copy ./node_transform /var/local/node_transform/ 
// 设置工作区 
WORKDIR /var/local/node_transform 
// 设置时区,避免出现时间错乱的问题 
ENV TIME_ZONE=Asia/Shanghai 
RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone 
// 占用端口号 
EXPOSE 8091 
// 启动命令 
CMD ["node","app.js"]
  1. 构建镜像

进到Dockerfile所在的目录,运行以下命令构建Docker镜像

docker build . -t demo demo为新镜像的名称

3.运行镜像

-d 模式运行镜像将以分离模式运行 Docker 容器,使得容器在后台自助运行。

-p 在容器中把一个公共端口导向到私有的端口,请用以下命令运行你之前构建的镜像:

// 第一个demo为新增的容器名 
// 第二个demo为刚才新建的镜像名 
docker run -d --name demo -p 3000:3000 demo
  1. 查看当前运行中的镜像 docker ps -a

image.png

如果你需要进入容器中,请运行 exec 命令:

docker exec -it <容器名/容器Id> /bin/bash

如果你需要设置容器随docker启动而启动

docker container update --restart=always <容器名/容器Id>