乐趣区

关于后端:Docker部署Node应用简单实践

简介:本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简略的 Node 利用。前言本文将从零至一,介绍如何在云服务器上通过 Docker 容器运行一个简略的 Node 利用。本文假如读者曾经把握根本的 Linux,Docker,Node,Express 常识。根本步骤本地写好 nodejs 利用,放到 github。云服务器装置 docker,配置国内镜像减速。拉取一个 node 镜像。从 github 拉取我的项目代码。编写 Dockerfile 文件,构建镜像。依据镜像运行一个容器。本地进行拜访。具体步骤 1. 编写 Node 利用新建我的项目目录 hello,进入目录,初始化我的项目:npm init 装置 express 模块 npm install express –save 我的项目根目录下新建 app.js,当拜访时返回 Hello,Docker!,监听 3000 端口。// app.js
const express = require(‘express’);
const app = express();
app.get(‘/’, function (req, res) {
res.send(‘Hello,Docker!’);
});
app.listen(3000);
console.log(‘Server is running on http://localhost:3000’);2. 装置 Docker 近程连贯服务器,装置 Docker:yum install -y docker 装置胜利当前,编辑 /etc/docker/daemon.json 文件,配置国内镜像减速。这里用到的是阿里云提供的减速服务,须要登录 https://dev.aliyun.com/ 来获取集体专属的减速地址。这里假如减速地址是 https://4da6b0g8.mirror.aliyu…。vim /etc/docker/daemon.json 编写以下内容:{
“registry-mirrors”: [“https://4da6b0g8.mirror.aliyu…“]
} 批改完配置文件应该重启服务。3. 拉取 Node 镜像拉取 Node 镜像 docker pull node:9.2.0 期待镜像拉取胜利,能够查看下咱们曾经有的镜像:docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/node 9.2.0 c1d02ac1d9b4 3 weeks ago 675.6 MB
node 9.2.0 c1d02ac1d9b4 3 weeks ago 675.6 MB4. 部署我的项目代码进入 /home 目录,从 github 上拉取我的项目代码:cd /home
git clone https://github.com/hsyq/hello 这里的 github 地址要换成本人仓库的地址。5. 编写 Dockerfile 文件 Dockerfile 文件里是一条条能被 Linux 执行的命令,docker 能依据该文件构建镜像。该文件必须和我的项目文件放在一起,个别放在我的项目根目录下,本例中即 /home/hello 目录下。cd hello
vim Dockerfile# 根底镜像为 node,版本为 v9.2.0
FROM node:9.2.0

创立容器内的我的项目寄存目录

RUN mkdir -p /home/nodeapp
WORKDIR /home/nodeapp

将 Dockerfile 当前目录下所有文件拷贝至容器内我的项目目录并装置我的项目依赖

COPY . /home/Service
RUN npm install

容器对外裸露的端口号,要和 node 我的项目配置的端口号统一

EXPOSE 3000

容器启动时执行的命令

CMD [“node”, “app.js”]6. 构建镜像在我的项目根目录下执行命令构建对象:docker build -t hello . 屏幕会依照 Dockerfile 内的指令一条条执行并显示在屏幕上。构建实现,查看已有的镜像。REPOSITORY TAG IMAGE ID CREATED SIZE
hello latest b753dcb8208d 4 hours ago 675.6 MB
docker.io/node 9.2.0 c1d02ac1d9b4 3 weeks ago 675.6 MB
node 9.2.0 c1d02ac1d9b4 3 weeks ago 675.6 MB
7. 运行容器通过镜像 hello 创立一个容器并运行:docker run -d –name hellocontainer -p 80:3000 hello- d 示意容器会在后盾运行;–name 是咱们给容器起的名字,这个名字是惟一的;- p 示意端口映射,行将容器内的 3000 端口映射到宿主机器的 80 端口上,这样内部就能够通过 80 端口来拜访容器外部运行的利用了。本文的演示没有应用 Nginx 做端口转发,只有服务器凋谢 80 端口,就能将 80 映射到 node 我的项目容器的 3000 端口上,对完提供拜访服务。执行命令查看容器的状态:docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
748be4cfccd9 hello “node app.js” 25 seconds ago Up 25 seconds 0.0.0.0:80->3000/tcp hellocontainer
此时,node 利用曾经在容器内跑起来了。咱们能够拜访了。8. 本地拜访关上本地的浏览器,输出云服务器的公网 IP 即可拜访:

原文链接:https://click.aliyun.com/m/10… 本文为阿里云原创内容,未经容许不得转载。

退出移动版