本篇文章帶大家了解一下Docker,介紹為什么要使用 Docker?如何使用 Docker?以及使用Docker給nodejs程序打包的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
你聽到過這樣的對話嗎?
這種對話很常見。這一般是由于工作環(huán)境設(shè)置或配置不同而引起的。這就是為什么要使用 docker 的主要目的。
在文中,我將教你什么是 docker,為什么使用以及怎樣用來給 nodejs 程序打包。
什么是Docker?
Docker 的定義為:
Docker 是一個容器化平臺,用于將應(yīng)用程序及其依賴項打包在一起,以確保無論工作環(huán)境如何,應(yīng)用程序都能輕松運行。
好吧,這些文字只是告訴我們:
Docker 是一種用容器輕松創(chuàng)建、部署和運行應(yīng)用程序的工具。
為什么要使用 Docker?
Docker 會將你的機器環(huán)境與你的代碼一起提供給其他人,這樣當你團隊伙伴得到你的代碼時,他們也可以得到你的機器配置。由于代碼在擁有這些配置的計算機上運行,因此肯定可以在其它計算機上運行,因為它們具有和你相同的配置。
現(xiàn)在可以把用在配置新計算機上的時間投入到更具更重要的工作中。
如何使用 Docker?
安裝
- 請訪問 Docker 官網(wǎng)
- 在菜單中的 Docker Desktop 選項卡下查看如何為你的機器安裝 docker
Windows 用戶請注意
1. 你需要在計算機中啟用虛擬化。要檢查是否啟用了虛擬化,請按照以下步驟操作:
- 在鍵盤上按
ctrl + alt + del
- 在隨后的菜單中選擇“任務(wù)管理器”
- 在彈出的 Windows 對話框中單擊“性能”標簽。這是我的
2. 對于使用 Windows 8 或更早版本的用戶,請使用 docker toolbox
用 Docker 給 Nodejs 程序打包
確保已啟動 docker,并且將其設(shè)置為 running,以便你查看更改或 docker 效果。
- 首先從 github 克隆項目
- 按照自述文件中的說明設(shè)置項目。
- 如果你設(shè)置完成了項目并且運行了服務(wù)器,則應(yīng)該在瀏覽器中得到以下響應(yīng)
- 接下來,在項目的根目錄中創(chuàng)建一個文件,并將其命名為
Dockerfile
,不帶擴展名。
配置 Dockerfile
-
在文件中輸入以下代碼來指定我們正在使用的
docker node
# use docker node 10 FROM node:10
-
輸入以下代碼為 Docker 應(yīng)用創(chuàng)建目錄
# create a directory to run docker WORKDIR /app
-
以下代碼把
package.json
文件復(fù)制到/app
目錄中
# copy package.json into the new directory COPY package.json /app
-
以下代碼在 Docker 應(yīng)用中安裝項目的依賴項
# install the dependencies RUN npm install
-
現(xiàn)在把項目中的所有的文件和文件夾復(fù)制到 docker 的
/app
目錄中。以下是代碼:
# copy all other files and folder into the app directory COPY . /app
-
以下代碼指定 docker 應(yīng)用運行的端口
# open port 5000 EXPOSE 5000
-
使用以下代碼運行 docker 應(yīng)用
# run the server CMD node index.js
現(xiàn)在我們的 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
構(gòu)建 Docker 應(yīng)用
- 要構(gòu)建 docker 應(yīng)用,請在終端中鍵入以下命令,然后按
Enter
鍵
docker build -t docker-node-app .
你的終端應(yīng)輸出類似下面的信息:
在上面的命令中,docker-node-app
是我們正在創(chuàng)建的 docker 應(yīng)用的名稱。你的可能會有所不同。另外,請不要忘記結(jié)尾處的句點(.
)
運行 Docker App
- 最后在終端中用以下命令運行 docker 應(yīng)用:
docker run -it -p 5000:3000 docker-node-app
它會輸出與普通應(yīng)用完全相同的消息,但是這次,它加載在端口5000上
在上面的命令中,我們告訴 docker 運行在端口 5000 上構(gòu)建的程序,即使我們的程序運行在端口 3000 上。
結(jié)果
現(xiàn)在,我們的 Docker 運行在 5000 端口上,而原始應(yīng)用程序運行在 3000 端口上。檢查你的瀏覽器
要查看所有正在運行的 docker 程序,請在終端中使用以下命令
docker ps
如果檢查 Docker 儀表板,則會看到你的 Docker 程序:
你已經(jīng)用 docker 創(chuàng)建了你的第一個部署。
總結(jié)
在快速迭代的系統(tǒng)中, docker 是很重要。因此我們需要學(xué)習它。
我們使用的大多數(shù)代碼都在 docker hub 上找到。像 Microsoft、mongoDB、PHP 等許多公司已經(jīng)為這些事情制作了代碼(或鏡像),因此你需要做的就是制作自己的副本。
這些配置稱為鏡像。例如可以在這里找到我們所使用的 node 鏡像。
謝謝你的閱讀。
英文原文地址:https://dev.to/ebereplenty/docker-an-introduction-with-nodejs-4o2j?utm_source=dormosheio&utm_campaign=dormosheio
作者:NJOKU SAMSON EBERE
【推薦學(xué)習:《nodejs 教程》】