SUSE Linux Docker 與容器管理完整教學
Docker 是一個廣泛使用的輕量級容器技術,允許開發者與系統管理員快速部署、測試與管理應用程式。在 openSUSE 與 SUSE Linux Enterprise (SLE) 上,你可以使用 Docker(或官方建議的 Podman)來建立與管理容器。本指南聚焦於 Docker 生態,並介紹 docker-compose
、映像檔管理、網路設定及安全性強化技巧。
目錄
- 安裝 Docker
- Docker 基本命令
- 管理 Docker 容器
- Docker 映像檔管理
- Docker 網路設定
- Docker 資料持久化
- 使用 Docker Compose
- Docker 安全性最佳實踐
- 日誌與錯誤排除
- 結語
安裝 Docker
在 SUSE 平台上,可以直接透過官方套件庫安裝 Docker:
sudo zypper refresh
sudo zypper install -y docker docker-compose
啟動並設定 Docker 服務開機啟動:
sudo systemctl enable --now docker
確認 Docker 版本:
docker --version
docker-compose --version
如果你想以非 root 使用者執行 Docker,可將自己加入 docker
群組:
sudo usermod -aG docker $USER
# 重新登入或執行
newgrp docker
Docker 基本命令
- 檢查 Docker 服務狀態
sudo systemctl status docker
- 顯示 Docker 系統資訊
docker info
- 搜尋映像檔
docker search nginx
管理 Docker 容器
- 拉取並運行容器
docker run -d --name my-nginx -p 8080:80 nginx
- 檢視運行中的容器
docker ps
- 停止容器
docker stop my-nginx
- 刪除容器
docker rm my-nginx
- 進入運行中的容器
docker exec -it my-nginx /bin/sh
- 查看容器日誌
docker logs my-nginx
Docker 映像檔管理
- 列出本地映像檔
docker images
- 刪除映像檔
docker rmi nginx
- 建立自訂映像檔
在當前目錄建立Dockerfile
:FROM nginx COPY index.html /usr/share/nginx/html/index.html
然後建構映像:
docker build -t my-nginx .
Docker 網路設定
- 檢視 Docker 網路
docker network ls
- 建立自訂網路
docker network create mynetwork
- 讓容器加入自訂網路
docker run -d --name web --network mynetwork nginx
Docker 資料持久化
- 使用 Volume
docker volume create mydata docker run -d --name my-mysql -e MYSQL_ROOT_PASSWORD=secret \ -v mydata:/var/lib/mysql mariadb
- 綁定本機資料夾
docker run -d --name my-nginx \ -v /home/user/www:/usr/share/nginx/html nginx
使用 Docker Compose
Docker Compose 方便定義與啟動多容器應用。
- 建立
docker-compose.yml
:version: '3' services: web: image: nginx ports: - "8080:80" db: image: mariadb environment: MYSQL_ROOT_PASSWORD: secret
- 啟動:
docker-compose up -d
- 停止並移除:
docker-compose down
Docker 安全性最佳實踐
- 限制容器檔案系統權限
docker run --read-only nginx
- 設定資源配額
docker run -d --name limited \ --memory="512m" --cpus="1.0" nginx
- 避免使用 root 使用者執行服務:於 Dockerfile 中
USER
指令指定非 root 使用者。
日誌與錯誤排除
- 查看 Docker 服務日誌
sudo journalctl -u docker --no-pager | tail -n 50
- 查看容器日誌
docker logs my-nginx
- 即時監控容器資源
docker stats
結语
透過本指南,您已瞭解在 SUSE Linux 上安裝與管理 Docker、建立與管理容器、網路與資料持久化,以及使用 Docker Compose 與安全強化技巧。這些知識將幫助您在 SUSE 環境中高效、安全地部署容器化應用。