1. 程式人生 > >使用 Docker 部署 Node 服務

使用 Docker 部署 Node 服務

前言
  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