简介: 本文将从零至一,介绍如何在云服务器上通过 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...本文为阿里云原创内容,未经容许不得转载。