Windows安裝Docker僻焚,并部署Node.js應(yīng)用

We love docker

前言

之前作者對于Docker是個什么東西完全是個零的概念蜒秤,但因作者近期所做的項目需要用到Docker來部署應(yīng)用(說白了就是不得不學(xué))弟孟,所以折騰了一天贝咙,在網(wǎng)上也查找了很多資料,最后終于成功地把自己的nodejs應(yīng)用部署到Docker上(Windows環(huán)境)拂募,所以寫下這篇文章跟大家分享庭猩,希望對您有所幫助!

一陈症、下載 Docker Toolbox

點擊下載鏈接蔼水,下載Windows版本的安裝文件,下載完成后雙擊該文件录肯,一路默認(rèn)Next點下去即可徙缴。注意:中途如提示您安裝其它的程序,全部選擇安裝即可嘁信。如360軟件提示您阻止軟件安裝于样,則您需要選擇允許軟件安裝。
安裝成功后您的桌面上會出現(xiàn)這幾個程序圖標(biāo)潘靖,他們分別是 Docker Quickstart Terminal(Docker的終端)穿剖,Kitematic(Alpha)(Docker的GUI管理工具),Oracle VM VirtualBox(虛擬機)

圖標(biāo)

二卦溢、使用 Docker

雙擊啟動 Docker Quickstart Terminal糊余,稍作等待,你會看到這樣的界面:

wooooo,docker

現(xiàn)在就可以使用docker了单寂,你可以輸入一些命令:

docker info        // 目前docker環(huán)境的相關(guān)信息
docker version  // docker的版本信息

三贬芥、使用 Xshell5 連接 Docker

因為docker終端的體驗性很差,平時在使用的時候會有些不方便宣决,所以我們可以用Xshell5連接docker服務(wù)器蘸劈,我們使用 SSH 協(xié)議進行連接,主機的ip地址填寫 192.168.99.100尊沸,它是docker安裝后的默認(rèn)ip地址威沫,賬號:docker,密碼:tcuser洼专,連接成功后就可以用Xshell5運行docker命令了棒掠。

新建連接
連接成功后的界面

四、用 docker 部署 node.js 應(yīng)用

首先我們需要下載安裝 node.js 環(huán)境的鏡像屁商,因為下載docker的國外鏡像比較慢烟很,所以作者選擇了國內(nèi)的鏡像源 DaoCloud(你也可以選擇其他的國內(nèi)鏡像,如阿里,163等)雾袱,執(zhí)行下面的命令:

docker pull daocloud.io/library/node
安裝nodejs鏡像成功

安裝鏡像成功后恤筛,我們就可以構(gòu)建自己的nodejs項目的鏡像了,首先谜酒,cd 到項目的根目錄,根據(jù)您自己的需求構(gòu)建好 package.json妻枕,執(zhí)行 vi package.json

{                       
  "name": "nodetest",       
  "version": "1.0.0",                                    
  "description": "nothing",                                 
  "main": "main.js",                                     
  "scripts": {                                           
    "start": "node main.js"
  },                  
  "keywords": [       
    "..."                  
  ],                       
  "author": "leechee",     
  "license": "ISC",        
  "dependencies": {        
    "koa": "^1.2.4",          
  }                           
}

創(chuàng)建 Dockerfile僻族,執(zhí)行 vi Dockerfile

FROM daocloud.io/library/node

# 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 表示鏡像的地址
  • RUN 表示執(zhí)行后面的命令
  • WORKDIR 指定工作目錄
  • COPY 復(fù)制
  • EXPOSE 向外暴露端口
  • CMD 運行命令

最后編寫項目入口程序 main.js,執(zhí)行 vi main.js

// 一個簡單的web server
var koa = require('koa');         
var app = koa();                    
                                   
app.use(function *() {        
  this.body = 'hello world!'; 
});                 
                                
app.listen(8888, function () {             
  console.log('server is running on 8888');            
}); 

準(zhǔn)備工作完畢后屡谐,執(zhí)行下面的命令述么,構(gòu)建應(yīng)用程序鏡像

docker build -t mynodeapp .

最后一步适贸,在 docker 容器中運行我們的應(yīng)用

// 先查看我們創(chuàng)建的鏡像的 IMAGE ID司恳,它是 6d06d88bda4b
$ docker images
REPOSITORY                 TAG                 IMAGE ID            CREATED             SIZE
mynodeapp                  latest              6d06d88bda4b        1 days ago          791MB
daocloud.io/library/node   latest              60bea5b86079        3 weeks ago         673MB
hello-world                latest              1815c82652c0        3 months ago        1.84kB

// 根據(jù)查到的 IMAGE ID 值,運行下面的命令
$ docker run -d -p 8888:8888 6d06d88bda4b

// 上面的命令沒有報錯的話喝峦,說明應(yīng)用程序成功運行
$ docker ps    // 查看正在運行的容器
$ curl -i localhost:8888    // 測試

最后饵撑,還可以使用 Kitematic (Alpha) 來管理 Docker 的應(yīng)用剑梳,比如使用 DockerHub 上的鏡像,也可以管理自己的鏡像滑潘。

DockerHub上面的鏡像

自己的鏡像

簡書作者 小菜荔枝 轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末垢乙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子语卤,更是在濱河造成了極大的恐慌追逮,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粹舵,死亡現(xiàn)場離奇詭異钮孵,居然都是意外死亡,警方通過查閱死者的電腦和手機眼滤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門巴席,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诅需,你說我怎么就攤上這事情妖。” “怎么了诱担?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵毡证,是天一觀的道長。 經(jīng)常有香客問我蔫仙,道長料睛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮恤煞,結(jié)果婚禮上屎勘,老公的妹妹穿的比我還像新娘。我一直安慰自己居扒,他們只是感情好概漱,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喜喂,像睡著了一般瓤摧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玉吁,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天照弥,我揣著相機與錄音,去河邊找鬼进副。 笑死这揣,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的影斑。 我是一名探鬼主播给赞,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼矫户!你這毒婦竟也來了塞俱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤吏垮,失蹤者是張志新(化名)和其女友劉穎障涯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膳汪,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡唯蝶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了遗嗽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粘我。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖痹换,靈堂內(nèi)的尸體忽然破棺而出征字,到底是詐尸還是另有隱情,我是刑警寧澤娇豫,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布匙姜,位于F島的核電站,受9級特大地震影響冯痢,放射性物質(zhì)發(fā)生泄漏氮昧。R本人自食惡果不足惜框杜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望袖肥。 院中可真熱鬧咪辱,春花似錦、人聲如沸椎组。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寸癌。三九已至专筷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間灵份,已是汗流浹背仁堪。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工哮洽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留填渠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓鸟辅,卻偏偏與公主長得像氛什,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子匪凉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容