前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

前言
  Docker 是一个开源的容器引擎。开发者可以将自己的应用以及依赖打包为一个可移植的容器,然后发布到 Linux 机器上。它类似于一个轻量级的虚拟机,极大地方便了用户在服务器端部署和管理应用环境。

一、在 Ubuntu 中安装 Docker
  配置 Node 的运行环境,有时候需要编译 Node 的 C++ 模块。Node 的编译环境要求 GCC/g++ 4.8 或以上的版本。在一些较低版本的 Linux 服务器上,编译安装 GCC 是一件非常耗时的事情。使用 Docker 可以省去这些麻烦,快速部署应用。可以使用 docker pull 命令下载一个支持 Node 运行和编译的 Linux 镜像,基于此镜像制作一个包含 Node 程序运行环境的新镜像,以后就可以直接使用这个镜像部署 Node 服务。

在Linux下使用root登录后,运行:(本文环境:Ubuntu Server 16.04.3 LTS)

apt install docker.io

安装成功后查看docker版本:docker --version

二、在 Docker 中安装 Node
从国内的镜像网站上pull下一个 nodejs 镜像(前提是已启动 docker)

docker pull hub.c.163.com/nce2/nodejs:0.12.2

下载完后查看我们的镜像,找到他的名称,等会我们会用到  docker images 


三、创建Node.js 程序
创建package.json,并写入相关信息和依赖
nano package.json

{
    "name": "webTest",
    "version": "1.0.0",
    "description": "Node.js on Docker",
    "author": "abloume",
    "main": "server.js",
    "scripts": {
        "start": "node server.js"
    },
    "dependencies": {
        "express": "^4.13.3"
    }
}


创建server.js
nano server.js

'use strict';

var express = require('express');

var PORT = 8888;

var app = express();
app.get('/', function (req, res) {
  res.send('Hello world\n');
});

app.listen(PORT);
console.log('Running on http://localhost:' + PORT);


四、创建Dockerfile
Dockerfile 这个文件是创建镜像所必须的文件

FROM hub.c.163.com/nce2/nodejs:0.12.2  # 构建镜像的基础源镜像

# Create app directory
RUN mkdir -p /home/Service             # 用于在Image里创建一个文件夹并用来保存我们的代码
WORKDIR /home/Service                  # 将我们创建的文件夹做为工作目录

# Bundle app source
COPY . /home/Service                   # 把本机当前目录下的所有文件拷贝到Image的/home/Service文件夹下
RUN npm install                        # 使用npm 安装我们的app据需要的所有依赖

EXPOSE 8888
CMD [ "npm", "start" ]


五、构建Image
在你Dockerfile文件所在的目录下运行下面的命令来构建一个Image

docker build -t mynodeapp .   # 将我们上面的创建一个名为mynodeapp的镜像

构建完后查看一下我们的镜像 docker ps 是否有 mynodeapp

六、运行镜像
 

docker run -d -p 8888:8888 [容器ID]

-d :后台运行。 -p 设置端口映射。
这时在外网即可访问 IP地址:8888 ,前面的端口号是外网访问端口,后面的是窗口映射端口。

转自:https://blog.csdn.net/u013451157/article/details/79003717 
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐