用 Docker 打包 Nodejs 程序

做者:NJOKU SAMSON EBERE

原文:https://dev.to/ebereplenty/do...前端

你聽到過這樣的對話嗎?node

程序猿1:在個人計算機上不能用 😒

程序猿2:在我這裏好好的啊 🤨

這種對話很常見。這通常是因爲工做環境設置或配置不一樣而引發的。這就是爲何要使用 docker 的主要目的。git

在文中,我將教你什麼是 docker,爲何使用以及怎樣用來給 nodejs 程序打包。程序員

什麼是Docker?

Docker 的定義爲:github

Docker 是一個容器化平臺,用於將應用程序及其依賴項打包在一塊兒,以確保不管工做環境如何,應用程序都能輕鬆運行。

好吧,這些文字只是告訴咱們:面試

Docker 是一種用容器輕鬆建立、部署和運行應用程序的工具。

爲何要使用 Docker?

Docker 會將你的機器環境與你的代碼一塊兒提供給其餘人,這樣當你團隊夥伴獲得你的代碼時,他們也能夠獲得你的機器配置。因爲代碼在擁有這些配置的計算機上運行,​​所以確定能夠在其它計算機上運行,​​由於它們具備和你相同的配置。docker

如今能夠把用在配置新計算機上的時間投入到更具更重要的工做中。npm

如何使用 Docker?

安裝

  • 請訪問 Docker 官網
  • 在菜單中的 Docker Desktop 選項卡下查看如何爲你的機器安裝 docker

Windows 用戶請注意json

1. 你須要在計算機中啓用虛擬化。要檢查是否啓用了虛擬化,請按照如下步驟操做:segmentfault

  • 在鍵盤上按 ctrl + alt + del
  • 在隨後的菜單中選擇「任務管理器」
  • 在彈出的 Windows 對話框中單擊「性能」標籤。這是個人

image.png

2. 對於使用 Windows 8 或更早版本的用戶,請使用 docker toolbox

用 Docker 給 Nodejs 程序打包

確保已啓動 docker,而且將其設置爲 running,以便你查看更改或 docker 效果。

image.png

  • 接下來,在項目的根目錄中建立一個文件,並將其命名爲 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 .

你的終端應輸出相似下面的信息:

image.png

在上面的命令中,docker-node-app 是咱們正在建立的 docker 應用的名稱。你的可能會有所不一樣。另外,請不要忘記結尾處的句點(.

運行 Docker App

  • 最後在終端中用如下命令運行 docker 應用:
docker run -it -p 5000:3000 docker-node-app

它會輸出與普通應用徹底相同的消息,可是此次,它加載在端口5000上

image.png

在上面的命令中,咱們告訴 docker 運行在端口 5000 上構建的程序,即便咱們的程序運行在端口 3000 上。

結果

如今,咱們的 Docker 運行在 5000 端口上,而原始應用程序運行在 3000 端口上。檢查你的瀏覽器

image.png

要查看全部正在運行的 docker 程序,請在終端中使用如下命令

docker ps

image.png

若是檢查 Docker 儀表板,則會看到你的 Docker 程序:

image.png

你已經用 docker 建立了你的第一個部署🥳 。

總結

在快速迭代的系統中, docker 是很重要。所以咱們須要學習它。

咱們使用的大多數代碼都在 docker hub 上找到。像 Microsoft、mongoDB、PHP 等許多公司已經爲這些事情製做了代碼(或鏡像),所以你須要作的就是製做本身的副本。

這些配置稱爲鏡像。例如能夠在這裏找到咱們所使用的 node 鏡像

謝謝你的閱讀。🤗

173382ede7319973.gif


本文首發微信公衆號:前端先鋒

歡迎掃描二維碼關注公衆號,天天都給你推送新鮮的前端技術文章

歡迎掃描二維碼關注公衆號,天天都給你推送新鮮的前端技術文章

歡迎繼續閱讀本專欄其它高贊文章:


相關文章
相關標籤/搜索