使用 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