// 每日前端夜話 第378篇
// 正文共:1600 字
// 預計閱讀時間:7 分鐘
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICMyYTMvw1dvwlMvwlM3VWaWV2Zh1Wa-cmbw5yM1hWM6VWM6RzYvwVN0kDMyETMtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.png)
你聽到過這樣的對話嗎?
程式猿1:在我的計算機上不能用 ?
程式猿2:在我這裡好好的啊 ?
複制
這種對話很常見。這一般是由于工作環境設定或配置不同而引起的。這就是為什麼要使用 docker 的主要目的。
在文中,我将教你什麼是 docker,為什麼使用以及怎樣用來給 nodejs 程式打包。
什麼是Docker?
Docker 的定義為:
❝Docker 是一個容器化平台,用于将應用程式及其依賴項打包在一起,以確定無論工作環境如何,應用程式都能輕松運作。
❞
好吧,這些文字隻是告訴我們:
❝Docker 是一種用容器輕松建立、部署和運作應用程式的工具。
❞
為什麼要使用 Docker?
Docker 會将你的機器環境與你的代碼一起提供給其他人,這樣當你團隊夥伴得到你的代碼時,他們也可以得到你的機器配置。由于代碼在擁有這些配置的計算機上運作,是以肯定可以在其它計算機上運作,因為它們具有和你相同的配置。
現在可以把用在配置新計算機上的時間投入到更具更重要的工作中。
如何使用 Docker?
安裝
- 請通路 Docker 官網[1]
- 在菜單中的 「Docker Desktop」 頁籤下檢視如何為你的機器安裝 docker
「Windows 使用者請注意」
「1. 你需要在計算機中啟用虛拟化。要檢查是否啟用了虛拟化,請按照以下步驟操作:」
- 在鍵盤上按
ctrl + alt + del
- 在随後的菜單中選擇“任務管理器”
- 在彈出的 Windows 對話框中單擊“性能”标簽。這是我的
「2. 對于使用 Windows 8 或更早版本的使用者,請使用 docker toolbox[2]」
用 Docker 給 Nodejs 程式打包
❝確定已啟動 docker,并且将其設定為 running,以便你檢視更改或 docker 效果。
❞
- 首先從 github 克隆項目[3]
- 按照自述檔案中的說明[4]設定項目。
- 如果你設定完成了項目并且運作了伺服器,則應該在浏覽器中得到以下響應
- 接下來,在項目的根目錄中建立一個檔案,并将其命名為
,不帶擴充名。Dockerfile
配置 Dockerfile
- 在檔案中輸入以下代碼來指定我們正在使用的
docker node
# use docker node 10
FROM node:10
複制
- 輸入以下代碼為 Docker 應用建立目錄
# create a directory to run docker
WORKDIR /app
複制
- 以下代碼把
檔案複制到package.json
目錄中/app
# copy package.json into the new directory
COPY package.json /app
複制
- 以下代碼在 Docker 應用中安裝項目的依賴項
# install the dependencies
RUN npm install
複制
- 現在把項目中的所有的檔案和檔案夾複制到 docker 的
目錄中。以下是代碼:/app
# copy all other files and folder into the app directory
COPY . /app
複制
- 以下代碼指定 docker 應用運作的端口
# open port 5000
EXPOSE 5000
複制
- 使用以下代碼運作 docker 應用
# run the server
CMD node index.js
複制
現在我們的
Dockerfile
看起來是這樣:
# use docker node 10
FROM node:10
# create a directory to run docker
WORKDIR /app
# copy package.json into the new directory
COPY package.json /app
# install the dependencies
RUN npm install
# copy all other files into the app directory
COPY . /app
# open port 5000
EXPOSE 5000
# run the server
CMD node index.js
複制
建構 Docker 應用
- 要建構 docker 應用,請在終端中鍵入以下指令,然後按
鍵Enter
docker build -t docker-node-app .
複制
你的終端應輸出類似下面的資訊:
Docker Build Image
在上面的指令中,
docker-node-app
是我們正在建立的 docker 應用的名稱。你的可能會有所不同。另外,請不要忘記結尾處的句點(
.
)
運作 Docker App
- 最後在終端中用以下指令運作 docker 應用:
docker run -it -p 5000:3000 docker-node-app
複制
它會輸出與普通應用完全相同的消息,但是這次,它加載在端口5000上
在上面的指令中,我們告訴 docker 運作在端口 5000 上建構的程式,即使我們的程式運作在端口 3000 上。
結果
現在,我們的 Docker 運作在 5000 端口上,而原始應用程式運作在 3000 端口上。檢查你的浏覽器
要檢視所有正在運作的 docker 程式,請在終端中使用以下指令
docker ps
複制
如果檢查 Docker 儀表闆,則會看到你的 Docker 程式:
你已經用 docker 建立了你的第一個部署? 。
總結
在快速疊代的系統中, docker 是很重要。是以我們需要學習它。
我們使用的大多數代碼都在 docker hub[5] 上找到。像 Microsoft、mongoDB、PHP 等許多公司已經為這些事情制作了代碼(或鏡像),是以你需要做的就是制作自己的副本。
這些配置稱為鏡像。例如可以在這裡找到我們所使用的 node 鏡像[6]。
謝謝你的閱讀。
作者:NJOKU SAMSON EBERE
翻譯:瘋狂的技術宅
原文:https://dev.to/ebereplenty/docker-an-introduction-with-nodejs-4o2j?utm_source=dormosheio&utm_campaign=dormosheio