📖 Linux Docker 與容器管理

分類:伺服器管理 | 作者:pake | 發布時間:2024-09-11 12:23

Linux Docker 與容器管理完整教學

Docker 是一個輕量級的容器技術,允許開發者和系統管理員快速部署、測試和管理應用程式。本篇將介紹如何在 Fedora / CentOS / RHEL 上安裝、設定和管理 Docker 容器,並探討 Docker Compose、映像檔管理、網路設定及安全性強化。


目錄


安裝 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 上輕鬆部署與管理容器化應用程式。

⬅ 上一篇 下一篇 ➡
🔙 返回 伺服器管理 📚 返回教學列表 🏠 返回首頁