Docker是什麼?使用Docker的好處與實戰實例

docker logo

Docker簡介:什麼是Docker?

Docker是一個開源的容器化平台,可以用來打包、運行和分享應用程式。Docker通過容器化技術實現了應用程式的獨立性和可移植性,讓開發者和運維人員可以更加便捷地進行應用程式的開發、部署和運維。

為什麼要使用Docker?

  • 簡化配置:Docker將應用程式和其依賴項打包成容器,避免了環境配置的問題。
  • 提高部署速度:容器快速啟動,加快應用程式的部署。
  • 易於擴展:容器化的應用程式可以快速擴展或縮小,以滿足需求。
  • 跨平台:Docker容器可以在任何平台上運行,方便應用程式的遷移。

如何使用Docker?

使用Docker可以分為三個步驟:構建映像、運行容器和分享映像。首先,需要構建一個Docker映像,包括應用程式及其依賴的庫和環境等。然後,運行映像可以通過命令行、Docker Compose等方式實現。最後,可以將構建好的Docker映像分享給其他使用者,讓他們可以快速地部署和運行應用程式。

Docker 是什麼?實戰手札帶你認識 Docker

何時應該使用Docker?

Docker適用於需要開發、部署和運維應用程式的場景,尤其是在多平台、多環境、多依賴等複雜場景下。使用Docker可以提高開發效率、簡化部署流程、減少運維成本、提高應用程式的可靠性和可移植性等。

如何使用Docker

使用Docker很簡單。以下是使用Docker的基本步驟:

  1. 安裝Docker:首先,你需要安裝Docker並在電腦上運行Docker服務。安裝過程可以在Docker的官方網站上找到詳細步驟,並且也有針對不同作業系統的安裝檔案。

根據您的操作系統,選擇合適的Docker安裝方法:

Docker基本概念

  • 映像檔(Image):包含應用程式和其依賴項的打包檔案,可以從Docker Hub下載或自行創建。
  • 容器(Container):映像檔的運行實例,可以創建、啟動、停止或刪除。
  • 倉庫(Repository):存儲映像檔的地方,例如Docker Hub。

Docker實戰:創建和運行容器

我們將一步步地帶領您完成使用Docker開發、部署和運行一個簡單的JavaScript Web應用程式,這裡我們將使用Node.js和Express框架。

  1. 創建Dockerfile

首先,創建一個新的目錄並進入該目錄:

mkdir js-web-app && cd js-web-app

在此目錄中創建一個名為Dockerfile的檔案,並使用以下內容:

# 使用官方Node.js映像檔作為基礎
FROM node:14

# 設置工作目錄
WORKDIR /app

# 將應用程式所需的套件安裝到容器中
COPY package*.json ./
RUN npm install

# 複製應用程式程式碼到容器中
COPY . .

# 暴露容器的端口,供外部訪問
EXPOSE 3000

# 啟動應用程式
CMD ["npm", "start"]

3. 構建映像檔

js-web-app目錄中,創建一個簡單的JavaScript Web應用程式。首先創建package.json檔案:

{
  "name": "js-web-app",
  "version": "1.0.0",
  "description": "A simple JavaScript web app",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "dependencies": {
    "express": "^4.17.1"
  }
}

接下來,創建app.js檔案:

const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;

app.get('/', (req, res) => {
  res.send('Hello, Docker!');
});

app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

js-web-app目錄中運行以下命令構建Docker映像檔:

docker build -t js-web-app .
``

4. 運行容器

使用剛剛構建好的映像檔運行容器:

docker run -d -p 3000:3000 --name my-js-web-app js-web-app

這個命令將會運行一個名為my-js-web-app的容器,並將容器的3000端口映射到主機的3000端口。

5. 訪問應用程式

在瀏覽器中訪問http://localhost:3000,您應該可以看到顯示 “Hello, Docker!” 的頁面。

6. 部署至雲端

將您的應用程式部署到雲端(例如:AWS, Google Cloud, Azure等),首先需要將您的Docker映像檔推送到容器倉庫,例如Docker Hub。

  1. 使用Docker命令登錄Docker Hub(如果您還沒有Docker Hub帳戶,請先註冊一個):
docker login
  1. 為映像檔添加標籤,使用您的Docker Hub用戶名和新的倉庫名稱:
docker tag js-web-app <YOUR_DOCKER_HUB_USERNAME>/js-web-app
  1. 推送映像檔到Docker Hub:
docker push <YOUR_DOCKER_HUB_USERNAME>/js-web-app

接下來,您可以根據您選擇的雲平台,遵循相應的指南部署您的應用程式。例如,對於AWS,您可以選擇使用Amazon ECS來部署和運行您的Docker容器。

我們一步步地帶領您完成使用Docker開發、部署和運行一個簡單的JavaScript Web應用程式。Docker簡化了開發、部署和運行應用程式的過程,使得應用程式在不同環境中的運行更加一致。希望這個教學能夠對你有所幫助。

三分鐘小測驗,找到你學習 Web App 全端開發的入口