欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker實踐--部署Nodejs應用

 更新時間:2017年01月12日 09:45:12   作者:lpxxn  
本篇文章主要介紹了Docker實踐--部署Nodejs應用,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

這個例子的目標是為了向大家展示如何在Docker的container里運行Node.js程序。我會先創(chuàng)建一個簡單的Node.js web

app,來構建一個鏡像。然后基于這個Image運行一個container。從而實現快速部署。

由于網絡的原因我的Node.js鏡像從國內的鏡像庫下載,而不是Docker Hub。

先從國內的鏡像網站上pull下一下nodejs鏡像。     

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

下載完后查看我們的鏡像,找到他的名稱,等會我們會用到

創(chuàng)建Node.js 程序

創(chuàng)建package.json,并寫入相關信息和依賴

vi package.json
{
 "name": "webtest",
 "version": "1.0.0",
 "description": "Node.js on Docker",
 "author": "lpxxn",
 "main": "server.js",
 "scripts": {
  "start": "node server.js"
 },
 "dependencies": {
  "express": "^4.13.3"
 }
}

創(chuàng)建server.js

vi server.js

寫一個最簡單web 這個web基于express框架,返回Hello word.注意我們監(jiān)聽的是8888端口

'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);

創(chuàng)建Dockerfile

接下來主角上場了創(chuàng)建Dockerfile文件 這個文件是創(chuàng)建鏡像所必須的文件

vi Dockerfile

Docker會依照Dockerfile的內容來構建一個鏡像。我先給出完整的代碼,再一行一行的給出解釋

FROM hub.c.163.com/nce2/nodejs:0.12.2

# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service

# Bundle app source
COPY . /home/Service
RUN npm install

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

我們來一句一句的解釋  

FROM hub.c.163.com/nce2/nodejs:0.12.2

FROM是構建鏡像的基礎源鏡像,hub.c.163.com/nce2/nodejs:0.12.2 這個是鏡像的名稱,也就是我們一開始從國內服務器上拉下來的那個Image。如果本地沒有Docker 會自己pull鏡像。

# Create app directory
RUN mkdir -p /home/Service
WORKDIR /home/Service

第一句RUN 用于在Image里創(chuàng)建一個文件夾,將來用于保存我們的代碼。

第二句WORKDIR是將我們創(chuàng)建的文件夾做為工作目錄。 

# Bundle app source
COPY . /home/Service
RUN npm install

第一句的COPY是把本機當前目錄下的所有文件拷貝到Image的/home/Service文件夾下。

第二句的RUN 使用npm 安裝我們的app據需要的所有依賴。

 EXPOSE 8888

由于我們的web app監(jiān)聽的是8888端口,我們把這個端口暴露給主機,這樣我就能從外部訪問web了。

CMD [ "npm", "start" ]

這個我相信我不用解釋你也能看出來他是做什么的。運行npm start命令,這個命令會運行 node service.js來

啟動我們的web app。

構建Image

在你Dockerfile文件所在的目錄下運行下面的命令來構建一個Image.

docker build -t mynodeapp .

別忘了最的的那個點

構建完后查看一下我們的鏡像

運行鏡像

docker run -d -p 8888:8888 ac5

-d 表明容器會在后臺運行,-p 表示端口映射,把本機的8888商品映射到container的8888端口這樣外網就能通過本機的8888商品訪問我們的web了。

后面的ac5是我們Image的ID因為前3個就已經能定位出這個Image所以我就沒有把后邊的再寫出來。

通過docker ps 查看我們剛運行的Container的ID

打印log  7370就是我們的Container ID,和Image ID一樣,你也可以全寫出來,我比較懶就寫前4位,已經足夠標識出這個Container了

docker logs 7350

如果你想到Container里可以執(zhí)行下面的命令,進入到里邊后就可以像操作普通的linux 一樣。如果想退出可執(zhí)行exit命令。

 測試

我們先通過curl 看能不能訪問我們的web。

curl -i localhost:8888

也可以通過瀏覽器來看一下

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Docker部署項目完全使用指南(小結)

    Docker部署項目完全使用指南(小結)

    本文主要介紹了Docker部署項目完全使用指南,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03
  • -bash:?docker-compose未找到命令的解決方案

    -bash:?docker-compose未找到命令的解決方案

    這篇文章主要介紹了-bash:?docker-compose:?未找到命令,需要的朋友可以參考下
    2023-12-12
  • docker如何刪除<none>/dangling/懸空鏡像

    docker如何刪除<none>/dangling/懸空鏡像

    這篇文章主要介紹了docker如何刪除<none>/dangling/懸空鏡像問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker部署Nginx設置環(huán)境變量的實現步驟

    Docker部署Nginx設置環(huán)境變量的實現步驟

    本文主要介紹了Docker部署Nginx設置環(huán)境變量的實現步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Docker swarm 簡單使用教程

    Docker swarm 簡單使用教程

    Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干臺Docker主機抽象為一個整體,并且通過一個入口統一管理這些Docker主機上的各種Docker資源,接下來通過本文給大家介紹Docker swarm 簡單使用,感興趣的朋友一起看看吧
    2021-11-11
  • docker部署redis的具體實現

    docker部署redis的具體實現

    在開發(fā)中,我們經常會遇到使用redis的場景,本文主要介紹了docker部署redis的具體實現,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • 在docker容器中使用非root用戶執(zhí)行腳本操作

    在docker容器中使用非root用戶執(zhí)行腳本操作

    這篇文章主要介紹了在docker容器中使用非root用戶執(zhí)行腳本操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 關于Docker的基礎概念分享

    關于Docker的基礎概念分享

    Docker是一個開源項目,誕生于2013年初,最初是dotCloud公司內部的一個業(yè)余項目。它基于 Google公司推出的Go語言實現。項目后來加入了 Linux 基金會,遵從了 Apache 2.0 協議,項目代碼在 GitHub上進行維護。
    2017-01-01
  • docker鏡像導入的實現方法

    docker鏡像導入的實現方法

    如果服務器網絡不好或者pull不下來鏡像,只能進行導入,本文主要介紹了docker鏡像導入的實現方法,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • springboot整合docker部署實現兩種構建Docker鏡像方式

    springboot整合docker部署實現兩種構建Docker鏡像方式

    這篇文章主要介紹了springboot整合docker部署實現兩種構建Docker鏡像方式,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04

最新評論