Linux Docker 與容器管理完整教學
Docker 是一個輕量級的容器技術,允許開發者和系統管理員快速部署、測試和管理應用程式。本篇將介紹如何在 Fedora / CentOS / RHEL 上安裝、設定和管理 Docker 容器,並探討 Docker Compose、映像檔管理、網路設定及安全性強化。
目錄
- 安裝 Docker
- Docker 基本命令
- 管理 Docker 容器
- Docker 映像檔管理
- Docker 網路設定
- Docker 資料持久化
- 使用 Docker Compose
- Docker 安全性最佳實踐
- 日誌與錯誤排除
- 結語
安裝 Docker
安裝 Docker 引擎
sudo dnf install moby-engine -y
啟動 Docker 並設定開機自動啟動
sudo systemctl enable --now docker
檢查 Docker 版本
docker --version
設定非 root 使用者運行 Docker
sudo usermod -aG docker $USER
newgrp docker
Docker 基本命令
檢查 Docker 服務狀態
sudo systemctl status docker
顯示 Docker 系統資訊
docker info
搜尋 Docker 映像檔
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
建立自訂 Docker 映像檔
建立 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 network connect mynetwork my-nginx
Docker 資料持久化
使用 Volume 來存儲資料
docker volume create mydata
docker run -d --name my-mysql -v mydata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=secret mysql
綁定本機資料夾至容器
docker run -d --name my-nginx -v /myhostdir:/usr/share/nginx/html nginx
使用 Docker Compose
安裝 Docker Compose
sudo dnf install docker-compose -y
建立 docker-compose.yml
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
db:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: secret
啟動 Docker Compose
docker-compose up -d
Docker 安全性最佳實踐
限制容器權限
docker run -d --name secure-nginx --read-only nginx
設定資源限制
docker run -d --name limited-nginx --memory="512m" --cpus="1.0" nginx
日誌與錯誤排除
查看 Docker 服務日誌
sudo journalctl -u docker --no-pager | tail -n 50
查看容器錯誤日誌
docker logs my-nginx
檢查 Docker 資源使用情況
docker stats
結語
本篇介紹了 Docker 的安裝、容器管理、網路設定、資料持久化、Docker Compose 以及安全性強化技巧。透過這些設定,您可以在 Linux 上輕鬆部署與管理容器化應用程式。