這篇文章會有三個部分:
- 以 node.js 的
express
來建立 Hello world 伺服器 - 撰寫 dockerfile
- 編譯成 docker image
安裝 Node.js
到 Node.js 官方網站下載 LTS 版本並且安裝。
使用指令 node -v
會顯示當前版本
1 | ➜ first_dockerfile node -v |
建立 express 伺服器
首先使用指令 npm install
,再輸入 npm install express
安裝 express 套件
最後是建立一個 server.js
檔案,並貼上以下內容
1 | const express = require('express') |
使用指令 node server.js
1 | ➜ first_dockerfile node server.js |
此時打開瀏覽器,輸入 http://localhost:8888
就能夠看到歡迎畫面
Dockerfile 是什麼
Dockerfile 就是 Docker 的腳本,透過這個腳本來將你的應用程式打包,編譯成 image。
Dockerfile 本身很簡潔,主要使用以下幾種指令:FROM
, ENV
, WORKDIR
, COPY
, CMD
- FROM: 用來載入映像檔的,像是這次範例會使用到 node,就會需要這些基底的映像檔
- ENV: 設定環境變數用,格式就是
KEY="VALUE"
- WORKDIR: 會在映像檔系統中建立一個目錄,稱為工作目錄
- COPY: 複製指令,從現在的環境將檔案複製到指定的映像檔系統中
- CMD: 啟動此容器時,會自動執行的指令,這邊就是上述執行 js 的語法
撰寫你的第一個 Dockerfile
首先我們建立一個檔案,名為 Dockerfile
,對的,沒有副檔名。
1 | FROM node:13 |
準備好 Dockerfile 後,我們可以執行指令 docker image build -t 'first_image' .
。
我們把此 image 命名為 first_image
,同時要注意後面的 .
,代表當前目錄。
1 | // 執行 build image 並命名為 first_image (中間適當省略內容與長度) |
接著我們嘗試透過 first_image
啟動 container,確認是否為我們先前建立的內容,docker run -p 8899:8888 -d 65f
,這邊刻意把 port 指向 8899
,確認是否正常。
到這邊你已經能夠成功 build 出自己的 image 了,但整個過程還有很多可以優化改善的地方,在後面的文章會繼續寫到~