廣告

Docker

  • 軟體名稱:Docker
  • 授權類型:免費軟體
  • 支援系統:Windows,Mac,Linux
  • 官方網站:Docker
以下是針對 Docker 的完整教學,適合初學者理解與實作。Docker 是一種能讓你快速建立、部署與執行應用程式的容器化平台


📦 什麼是 Docker?

Docker 就像虛擬機器,但更輕量、快速、可移植。它透過「容器」打包應用程式與其依賴(OS、lib、framework 等),讓你:

  • 確保「在我這沒問題」在別人電腦也能運行
  • 快速部署應用(例如 Python、Node.js、MySQL)
  • 實現微服務架構(每個服務一個容器)

🧱 核心概念

名稱說明
ImageDocker 映像檔,像是應用的「模板」
Container從 Image 啟動的實際執行單元(容器)
Dockerfile定義 Image 的腳本
Docker Hub像 GitHub,一個公開的 Docker 映像中心
Volume用來持久化資料
Port Mapping將容器內的 Port 對應到主機 Port

🧰 1. 安裝 Docker

安裝後確認:

docker --version
docker info

🚀 2. Docker 基本指令

功能指令
檢查版本docker --version
查看正在運行容器docker ps
查看所有容器docker ps -a
拉取映像檔docker pull nginx
啟動容器docker run hello-world
列出映像檔docker images
停止容器docker stop 容器ID或名稱
刪除容器docker rm 容器ID或名稱
刪除映像檔docker rmi 映像檔名稱或ID

🏗️ 3. 建立自己的容器(以 Python 為例)

docker run -it python:3.11
  • -it:進入互動模式
  • python:3.11:從 Docker Hub 下載並執行

輸入 print("Hello, Docker!") 試試!


🧑‍🍳 4. 使用 Dockerfile 自定義映像檔

建立 Dockerfile(無副檔名):

# 使用官方 Python 基礎映像
FROM python:3.11

# 設定工作目錄
WORKDIR /app

# 複製當前資料夾到容器內
COPY . .

# 安裝相依套件
RUN pip install -r requirements.txt

# 預設執行指令
CMD ["python", "main.py"]

然後在該目錄下建立 main.py,內容:

print("Docker Python App is running!")

建立映像檔並執行:

docker build -t my-python-app .
docker run my-python-app

🌍 5. 開放 Port:網頁應用範例

例如:使用 Flask

docker run -p 5000:5000 my-python-app
  • 容器內部 5000 port → 主機的 5000 port

你就可以開瀏覽器輸入 http://localhost:5000 測試應用程式了。


📦 6. Volume(資料持久化)

假設你要保存容器內 /data 目錄的資料:

docker run -v /本機路徑:/data my-python-app
  • 例如:-v $(pwd)/data:/data
  • 用於資料庫容器(像 MySQL/PostgreSQL)非常重要

🔄 7. Docker Compose(多容器架構)

建立 docker-compose.yml 讓多個容器一起運作,例如:

version: '3'
services:
  web:
    build: .
    ports:
      - "5000:5000"
  db:
    image: postgres
    environment:
      POSTGRES_PASSWORD: example

啟動:

docker-compose up

停止:

docker-compose down

📚 常見用途

場景使用方式
建立 Web 應用Python Flask、Node.js、React、Vue 搭配 Nginx
建立資料庫環境MySQL、PostgreSQL、MongoDB、Redis
自動化測試環境Jenkins、Selenium、CI/CD
建立開發沙盒開發者每人一個獨立容器

🛠️ 補充工具

  • Docker Desktop:圖形化界面(Windows/macOS)
  • Portainer:Web UI 管理 Docker
  • Play with Docker:線上 Docker 測試環境

🧠 總結

你想做什麼?用這個 Docker 指令
快速執行容器(試試看)docker run hello-world
建立你自己的容器Dockerfile + docker build
執行 Web 應用(Flask)docker run -p 5000:5000 my-app
搭建多容器架構docker-compose up

 

廣告

Leave a Reply

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