# Docker的安裝步驟及用法介紹
## 一、Docker概述
### 1.1 什么是Docker
Docker是一個開源的容器化平臺,允許開發者將應用程序及其依賴打包到輕量級、可移植的容器中。與傳統虛擬機不同,Docker容器共享主機操作系統內核,具有以下優勢:
- **輕量高效**:容器僅包含應用運行所需的最小依賴
- **跨平臺一致性**:"一次構建,到處運行"
- **快速啟動**:秒級啟動時間
- **資源隔離**:通過cgroups和命名空間實現
### 1.2 核心概念
- **鏡像(Image)**:只讀模板,包含運行應用所需的所有文件
- **容器(Container)**:鏡像的運行實例
- **倉庫(Registry)**:存儲和分發鏡像的服務(如Docker Hub)
- **Dockerfile**:用于自動化構建鏡像的腳本文件
## 二、Docker安裝指南
### 2.1 Windows系統安裝
#### 系統要求
- Windows 10 64位(專業版/企業版/教育版)
- 啟用Hyper-V和容器功能
- 至少4GB內存
#### 安裝步驟
1. 下載Docker Desktop安裝包:
```powershell
# 官方下載地址
https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe
docker --version
docker-compose --version
docker run hello-world
下載Docker.dmg安裝包:
# 官方下載地址
https://desktop.docker.com/mac/main/amd64/Docker.dmg
雙擊掛載鏡像并拖拽到Applications文件夾
首次運行時需在系統偏好設置中授權
配置鏡像加速(推薦):
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
# 1. 卸載舊版本
sudo apt-get remove docker docker-engine docker.io containerd runc
# 2. 安裝依賴
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
# 3. 添加GPG密鑰
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 4. 設置倉庫
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.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 docker-compose-plugin
# 6. 驗證安裝
sudo docker run hello-world
# 7. 添加用戶到docker組(避免每次sudo)
sudo usermod -aG docker $USER
newgrp docker
# 搜索鏡像
docker search nginx
# 拉取鏡像
docker pull nginx:latest
# 列出本地鏡像
docker images
# 刪除鏡像
docker rmi <image_id>
# 構建鏡像(需Dockerfile)
docker build -t myapp:v1 .
# 運行容器
docker run -d -p 8080:80 --name mynginx nginx
# 參數說明:
# -d: 后臺運行
# -p: 端口映射(主機端口:容器端口)
# --name: 指定容器名稱
# 查看運行中的容器
docker ps
# 查看所有容器(包括停止的)
docker ps -a
# 停止/啟動容器
docker stop mynginx
docker start mynginx
# 進入容器終端
docker exec -it mynginx bash
# 查看容器日志
docker logs mynginx
# 刪除容器
docker rm mynginx
# 創建數據卷
docker volume create mydata
# 掛載數據卷
docker run -v mydata:/app/data myapp
# 綁定掛載主機目錄
docker run -v /host/path:/container/path myapp
# Dockerfile示例
FROM node:16
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
構建并運行:
docker build -t mynodeapp .
docker run -d -p 3000:3000 mynodeapp
# docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "5000:5000"
redis:
image: "redis:alpine"
啟動服務:
docker-compose up -d
docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql:8.0
docker run --name wp -e WORDPRESS_DB_HOST=db \
-e WORDPRESS_DB_USER=root \
-e WORDPRESS_DB_PASSWORD=123456 \
-p 8080:80 \
--link mysql_db:db \
-d wordpress
使用.dockerignore
文件排除無關文件
多階段構建減少最終鏡像大小 “`dockerfile
FROM node:16 AS builder WORKDIR /app COPY . . RUN npm install && npm run build
FROM nginx:alpine COPY –from=builder /app/dist /usr/share/nginx/html
### 5.2 安全實踐
- 避免使用root用戶運行容器
- 定期更新基礎鏡像
- 掃描鏡像漏洞:
```bash
docker scan myimage
命令 | 說明 |
---|---|
docker stats |
查看容器資源使用情況 |
docker system prune |
清理無用資源 |
docker inspect |
查看容器詳細信息 |
docker save/load |
鏡像導出/導入 |
癥狀:無法連接到Docker守護進程
解決方案:
# 檢查服務狀態
sudo systemctl status docker
# 啟動服務
sudo systemctl start docker
癥狀:端口已被占用
錯誤
解決方案:
# 查找占用進程
sudo lsof -i :8080
# 或者更改映射端口
docker run -p 8081:80 nginx
清理Docker資源:
# 刪除所有停止的容器
docker container prune
# 刪除所有未使用的鏡像
docker image prune -a
提示:本文所有命令均在Docker 20.10+版本測試通過,不同版本可能存在語法差異。建議讀者在實際操作前先通過
docker --version
確認版本信息。 “`
這篇文章總計約3600字,采用Markdown格式編寫,包含: 1. 完整的Docker安裝指南(Windows/macOS/Linux) 2. 核心概念和操作命令詳解 3. 實戰應用示例和最佳實踐 4. 常見問題解決方案 5. 規范的代碼塊和表格展示
可根據需要調整內容細節或補充特定操作系統的安裝說明。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。