天天看點

用 Docker 打包 Node.js 程式

// 每日前端夜話 第378篇

// 正文共:1600 字

// 預計閱讀時間:7 分鐘

用 Docker 打包 Node.js 程式

你聽到過這樣的對話嗎?

程式猿1:在我的計算機上不能用 ?

程式猿2:在我這裡好好的啊 ?
           

複制

這種對話很常見。這一般是由于工作環境設定或配置不同而引起的。這就是為什麼要使用 docker 的主要目的。

在文中,我将教你什麼是 docker,為什麼使用以及怎樣用來給 nodejs 程式打包。

什麼是Docker?

Docker 的定義為:

❝Docker 是一個容器化平台,用于将應用程式及其依賴項打包在一起,以確定無論工作環境如何,應用程式都能輕松運作。

好吧,這些文字隻是告訴我們:

❝Docker 是一種用容器輕松建立、部署和運作應用程式的工具。

為什麼要使用 Docker?

Docker 會将你的機器環境與你的代碼一起提供給其他人,這樣當你團隊夥伴得到你的代碼時,他們也可以得到你的機器配置。由于代碼在擁有這些配置的計算機上運作,是以肯定可以在其它計算機上運作,因為它們具有和你相同的配置。

現在可以把用在配置新計算機上的時間投入到更具更重要的工作中。

如何使用 Docker?

安裝

  • 請通路 Docker 官網[1]
  • 在菜單中的 「Docker Desktop」 頁籤下檢視如何為你的機器安裝 docker

「Windows 使用者請注意」

「1. 你需要在計算機中啟用虛拟化。要檢查是否啟用了虛拟化,請按照以下步驟操作:」

  • 在鍵盤上按

    ctrl + alt + del

  • 在随後的菜單中選擇“任務管理器”
  • 在彈出的 Windows 對話框中單擊“性能”标簽。這是我的
用 Docker 打包 Node.js 程式

「2. 對于使用 Windows 8 或更早版本的使用者,請使用 docker toolbox[2]」

用 Docker 給 Nodejs 程式打包

❝確定已啟動 docker,并且将其設定為 running,以便你檢視更改或 docker 效果。

  • 首先從 github 克隆項目[3]
  • 按照自述檔案中的說明[4]設定項目。
  • 如果你設定完成了項目并且運作了伺服器,則應該在浏覽器中得到以下響應
用 Docker 打包 Node.js 程式
  • 接下來,在項目的根目錄中建立一個檔案,并将其命名為

    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 打包 Node.js 程式

Docker Build Image

在上面的指令中,

docker-node-app

是我們正在建立的 docker 應用的名稱。你的可能會有所不同。另外,請不要忘記結尾處的句點(

.

運作 Docker App

  • 最後在終端中用以下指令運作 docker 應用:
docker run -it -p 5000:3000 docker-node-app
           

複制

它會輸出與普通應用完全相同的消息,但是這次,它加載在端口5000上

用 Docker 打包 Node.js 程式

在上面的指令中,我們告訴 docker 運作在端口 5000 上建構的程式,即使我們的程式運作在端口 3000 上。

結果

現在,我們的 Docker 運作在 5000 端口上,而原始應用程式運作在 3000 端口上。檢查你的浏覽器

用 Docker 打包 Node.js 程式

要檢視所有正在運作的 docker 程式,請在終端中使用以下指令

docker ps
           

複制

用 Docker 打包 Node.js 程式

如果檢查 Docker 儀表闆,則會看到你的 Docker 程式:

用 Docker 打包 Node.js 程式

你已經用 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