Docker 是當前 DevOps 與雲端部署中不可或缺的容器技術。本文將完整介紹 Docker 的安裝流程與基本操作指令,附上詳細註解與架構說明,讓新手與工程師能快速理解容器運作與映像檔操作,建立穩定開發與測試環境。
Docker 是什麼?
Docker 是一種容器平台,透過作業系統層級虛擬化技術,將應用程式與執行環境打包在容器中。相較虛擬機,Docker 更輕量、啟動迅速,適合微服務架構。開發者可透過 Docker 建立一致的開發、測試與生產環境,避免「在我電腦可以跑」的問題。
Docker 安裝(Ubuntu)
在 Ubuntu 上安裝 Docker 步驟:
# 更新套件列表
sudo apt update
# 安裝 Docker
sudo apt install -y docker.io
# 啟動 Docker 服務
sudo systemctl start docker
# 設定開機自動啟動
sudo systemctl enable docker
# 查看 Docker 版本
docker --version
將使用者加入 Docker 群組,避免每次操作都需 sudo:
# 將當前使用者加入 docker 群組
sudo usermod -aG docker $USER
# 設定完成後需重新登入才能生效
Docker 基本指令
以下為常用 Docker 指令及功能說明,幫助理解容器操作:
拉取映像檔 (docker pull)
拉取映像檔是將官方或自訂映像檔下載到本地,方便創建容器。映像檔包含程式碼、依賴及設定,確保容器環境一致。
# 下載官方 nginx 映像檔
docker pull nginx
# 下載官方 MySQL 映像檔
docker pull mysql
# 下載 Node.js 映像檔
docker pull node:18
執行容器 (docker run)
執行容器是根據映像檔啟動一個隔離環境,可以設定端口映射、環境變數與後台運行。
# 執行 nginx 容器,-d 背景執行,-p 對應本機 80 端口
docker run -d -p 80:80 nginx
# 執行 MySQL 容器,設定 root 密碼
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=example mysql
# 執行 Node.js 容器,對應本機 3000 端口
docker run -d -p 3000:3000 node:18
容器管理
管理容器可查看運行狀態、啟停及刪除:
# 查看運行中的容器
docker ps
# 查看所有容器(包含停止)
docker ps -a
# 停止容器
docker stop
# 啟動容器
docker start
# 刪除容器
docker rm
映像檔管理
管理映像檔可查看本地映像檔並刪除不需要的檔案:
# 查看本地映像檔
docker images
# 刪除指定映像檔
docker rmi
Docker 架構說明
Docker 架構主要包含三個部分:
- Docker Client:使用者端指令介面,透過 docker 指令與 Docker Daemon 溝通。
- Docker Daemon:負責管理映像檔、容器、網路與 Volume,可接收 Docker Client 命令或 REST API 呼叫。
- Docker Registry:存放映像檔的遠端伺服器,例如 Docker Hub,客戶端可拉取或推送映像檔。
架構流程:
# Docker Client -> Docker Daemon -> Container
# Docker Daemon -> Docker Registry (拉取/推送映像檔)
FAQ 常見問題
Docker 是什麼?
Docker 是容器化平台,可將應用程式與執行環境打包在一起,確保跨環境一致性。
如何安裝 Docker?
在 Ubuntu 上使用 apt 安裝 Docker,啟動服務後加入 docker 群組以便非 root 使用者操作。
常用 Docker 指令有哪些?
包括 docker pull、run、ps、stop、rm、images,可操作容器與映像檔。
如何管理容器?
使用 docker ps 查看運行容器,docker start/stop 控制容器,docker rm 刪除不需要的容器。
Docker 適合新手嗎?
Docker 容易上手,新手可快速掌握容器與映像檔概念,快速建立測試環境。
