建立自己的Docker Image

在使用Docker的時候,我們通常都是利用別人已經準備好的Image來作為容器,在大部份簡單應用大概這樣就可以了。可是,作為一個網站開發人員,我們常常需要有自己的環境設定以因應開發的需求,這時候可能就會需要建立一個屬於自己的Image供日後或是在其它環境的使用。

由於Docker的Image是一種分層式的架構,因此在建立一個新的Image時就顯得格外的簡單,只要套用別人的Image,然加上一些自己的修改,基本上就完成了。

一般來說,要建立一個自己的Image需要放在同一個目錄中,所以在練習之前,請先建立一個空的資料夾,然後把所有需要的檔案都放在這個資料夾中。在我們的這這個例子中,我們以nodejs 的expressjs網站為例,請先在自己的電腦中安裝nodejs,然後再進行以下的作業。

建立一個空的目錄叫 mynodeapp,切換到該目錄之後,執行npm init,如下所示:

在確定了基本的環境之後,接著請安裝express,如下所示:

然後,建立一個src資料夾,並在該資料夾中準備這個示範程式,並將其命名為server.js:

const express = require('express');
const app = express();

app.get("/", (req, res)=>{
    res.send("Welcome to my web app!");
});

app.listen(3000, function () {
    console.log("NodeJS APP is now listening on port 3000");
})

上述的程式碼完成之後,可以利用以下指令測試是否能順利啟用此網站:

node src/server.js

如能順利執行,接著就可以開始建立一個建立Docker Image所需要的檔案,Dockerfile,其內容如下所示:

FROM node:19-alpine

COPY package.json /app/
COPY src /app/

WORKDIR /app

RUN npm install

CMD ["node", "server.js"]

最後,再執行以下指令,即可完成Docker Image的建立了:

docker build -t mynodeapp:nkust .

後面那個句點代表要建立的是目前的目錄,不能遺漏喔。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *