前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
前言
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?
?