開始
在windows下部署nodejs開發環境著實遍地坑,每遇到一個問題都要去google原因再試圖解決。而且如果你想把你寫好的應用交給別人跑跑看,他可能同樣需要折騰很久才能真正在他的環境下運行起來。被坑了好些時日最終還是放棄,轉戰Docker。
文章開頭先明確一下我們希望實現的效果:
1、依然在Windows下編輯源代碼,在Docker容器中運行代碼,最后在Windows的瀏覽器中看到運行結果,方便后續debug。
2、可以將我開發完成的程序和運行環境一起打包制作成Docker的image,移交image給小伙伴運行或者直接發布到服務器上。
安裝與啟動
Docker引擎核心是運行在Linux操作系統上的Linux容器。所以要在Windows上使用Docker容器,先要提供Linux運行環境。
去Docker官網下載msi安裝程序,若你的系統版本(例如64bit Windows 10 Pro, Enterprise and Education)支持Hyper-V虛擬技術,那么不需要使用額外的虛擬機(VirtualBox),安裝程序會自動為你安裝完成Docker(Docker for Windows)。
The Hyper-V package must be enabled for Docker for Windows to work. The Docker for Windows installer will enable it for you, if needed. (This requires a reboot). If your system does not satisfy these requirements, you can install Docker Toolbox, which uses Oracle Virtual Box instead of Hyper-V.
若不能使用Hyper-V虛擬技術,Docker項目組也提供了Docker ToolBox工具,可以很方便的在Windows環境下安裝Docker。
更詳細內容參考Docker官方文檔-toolbox。
本文中的執行系統為Win7,故使用Docker toolbox。
安裝過程會附帶安裝Oracle VM VirtualBox虛擬機,如下圖:
Kitematic為Docker的GUI管理工具,打開Docker Terminal可以快速地啟動Docker。
可以發現此時Docker給default machine分配了一個IP:192.168.99.100。我們可以直接在該終端下執行Docker命令。
由于在Windows中運行Docker多加了一層虛擬機,有幾個概念需要了解:
Docker主機指的是Linux虛擬機,也就是說,此時Docker主機(即Linux虛擬機)的IP地址為192.168.99.100。 與一般的ssh訪問虛擬機一樣,我們也可以通過該IP用ssh登錄到Docker主機去執行命令。(用戶名:docker;密碼:tcuser) 如要用root權限去執行Linux命令(如mount),則需要打開VirtualBox。搭建Image
新安裝好的Docker主機中沒有任何image(docker images 查看已有的image)。運行node應用需要搭建node環境鏡像,可以從Docker Hub上pull輕量級的Linux鏡像作為基礎鏡像(如CentOS),在上面手動安裝node;也可以直接pull一個已安裝了node的鏡像(docker pull 拉取鏡像)。從Docker Hub下載鏡像可能非常慢,可以借助國內的云服務商下載(如daocloud.io)。
現在假設我們pull了一個不包含node環境的CentOS鏡像。
$ docker run -it centos bash
啟動一個容器,并進入容器的bash進行交互式操作。采用與CentOS下一樣的方式安裝node。安裝完成后exit退出容器。請放心,如果不使用docker rm或者docker run時不增加--rm參數,即使退出容器,容器本身及其中的修改不會消失。可以用docker ps -a查看所有容器,docker ps查看正在運行的容器。
新聞熱點
疑難解答
圖片精選