Docker 基本概念與安裝指南
一、Docker?核心概念
1. 容器(Container)
容器是?Docker 的核心運行單元,本質是一個輕量級的沙盒環境。它基于鏡像創建,包含應用程序及其運行所需的依賴(如代碼、庫、環境變量等),但與宿主機和其他容器隔離,確保環境一致性。
2. 鏡像(Image)
鏡像是容器的靜態模板,類似于面向對象中的“類”。它通過分層存儲(Layer)實現高效復用,用戶可通過?Dockerfile 自定義鏡像,或從公共倉庫(如?Docker Hub)拉取預構建鏡像。
3. 倉庫(Registry)
倉庫用于存儲和分發鏡像,分為公共倉庫(如?Docker Hub)和私有倉庫。用戶可通過?docker push 和?docker pull 命令上傳或下載鏡像。
4. Docker 與虛擬機的區別
虛擬機:需模擬完整操作系統,資源占用高,啟動慢。
Docker 容器:共享宿主機內核,資源占用低,啟動秒級完成。
5. Dockerfile 與?Docker Compose
Dockerfile:定義鏡像構建步驟的腳本文件。
Docker Compose:通過?YAML 文件管理多容器應用的編排工具。
二、Docker?安裝步驟
1. Linux 系統(以?Ubuntu 為例)
# 1. 卸載舊版本(如有)
sudo?apt-get remove docker docker-engine docker.io containerd runc
# 2. 安裝依賴工具
sudo?apt-get update
sudo?apt-get install apt-transport-https ca-certificates curl software-properties-common
# 3. 添加 Docker 官方 GPG 密鑰
curl?-fsSL?https://download.docker.com/linux/ubuntu/gpg |?sudo?gpg --dearmor?-o?/usr/share/keyrings/docker-archive-keyring.gpg
# 4. 設置穩定版倉庫
echo?"deb [arch=$(dpkg?--print-architecture)?signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release?-cs)?stable"?|?sudo?tee /etc/apt/sources.list.d/docker.list >?/dev/null
# 5. 安裝 Docker 引擎
sudo?apt-get update
sudo?apt-get install docker-ce docker-ce-cli containerd.io
# 6. 驗證安裝
sudo?docker run hello-world
權限配置(非?root 用戶運行?Docker)
sudo?usermod -aG?docker $USER??# 將當前用戶加入 docker 組
newgrp?docker ?????????????????# 刷新用戶組
2. Windows 系統
要求:Windows?10/11 64位,支持?WSL2(Windows?Subsystem for Linux 2)。
步驟:
-
- 啟用?WSL2 功能:在?PowerShell 中執行?wsl --install。
- 下載并安裝?Docker Desktop for Windows。
- 啟動?Docker Desktop,在設置中啟用?WSL2 后端。
- 驗證:在終端運行?docker run hello-world。
3. macOS 系統
要求:macOS?10.15 或更高版本。
步驟:
-
- 下載并安裝?Docker Desktop for Mac。
- 雙擊安裝包,將?Docker 拖入?Applications 文件夾。
- 啟動?Docker,在菜單欄中確認狀態為“Running”。
- 驗證:終端運行?docker run hello-world。
三、快速入門示例
1. 運行?Nginx 容器
docker?run -d?-p?8080:80 --name?my-nginx nginx
-d:后臺運行容器。
-p 8080:80:將宿主機?8080 端口映射到容器的?80 端口。
訪問?http://localhost:8080 查看?Nginx 默認頁面。
2. 構建自定義鏡像
創建?Dockerfile 文件:
FROM?alpine:latest
RUN?apk?add --no-cache?python3
CMD?["python3", "--version"]
構建并運行:
docker?build -t?my-python .
docker?run my-python
四、常見問題與解決
- 權限拒絕錯誤
現象:執行?docker 命令時提示?Permission denied。
解決:將用戶加入?docker 組并重啟會話(見?Linux 安裝步驟)。
- 鏡像拉取緩慢
配置國內鏡像加速器(如阿里云、中科大源),修改?/etc/docker/daemon.json:
?"registry-mirrors":?["https://<your-mirror-id>.mirror.aliyuncs.com"]?}