做者:NJOKU SAMSON EBERE
你聽到過這樣的對話嗎?node
程序猿1:在個人計算機上不能用 😒 程序猿2:在我這裏好好的啊 🤨
這種對話很常見。這通常是因爲工做環境設置或配置不一樣而引發的。這就是爲何要使用 docker 的主要目的。git
在文中,我將教你什麼是 docker,爲何使用以及怎樣用來給 nodejs 程序打包。程序員
Docker 的定義爲:github
Docker 是一個容器化平臺,用於將應用程序及其依賴項打包在一塊兒,以確保不管工做環境如何,應用程序都能輕鬆運行。
好吧,這些文字只是告訴咱們:面試
Docker 是一種用容器輕鬆建立、部署和運行應用程序的工具。
Docker 會將你的機器環境與你的代碼一塊兒提供給其餘人,這樣當你團隊夥伴獲得你的代碼時,他們也能夠獲得你的機器配置。因爲代碼在擁有這些配置的計算機上運行,所以確定能夠在其它計算機上運行,由於它們具備和你相同的配置。docker
如今能夠把用在配置新計算機上的時間投入到更具更重要的工做中。npm
Windows 用戶請注意json
1. 你須要在計算機中啓用虛擬化。要檢查是否啓用了虛擬化,請按照如下步驟操做:segmentfault
ctrl + alt + del
2. 對於使用 Windows 8 或更早版本的用戶,請使用 docker toolbox
確保已啓動 docker,而且將其設置爲 running,以便你查看更改或 docker 效果。
Dockerfile
,不帶擴展名。docker node
# use docker node 10 FROM node:10
# create a directory to run docker WORKDIR /app
package.json
文件複製到 /app
目錄中# copy package.json into the new directory COPY package.json /app
# install the dependencies RUN npm install
/app
目錄中。如下是代碼:# copy all other files and folder into the app directory COPY . /app
# open port 5000 EXPOSE 5000
# 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
Enter
鍵docker build -t docker-node-app .
你的終端應輸出相似下面的信息:
在上面的命令中,docker-node-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 上找到。像 Microsoft、mongoDB、PHP 等許多公司已經爲這些事情製做了代碼(或鏡像),所以你須要作的就是製做本身的副本。
這些配置稱爲鏡像。例如能夠在這裏找到咱們所使用的 node 鏡像。
謝謝你的閱讀。🤗