跳到主要内容Docker 部署配置全流程:Windows 与 Linux 环境 | 极客日志Shell / Bash
Docker 部署配置全流程:Windows 与 Linux 环境
Docker 是一款开源容器化平台,通过容器技术将应用及其依赖项打包为可移植单元。详述了 Docker 的核心特点与应用场景,并提供了 Linux 和 Windows 双平台的完整部署指南。内容包括环境检查、旧版本卸载、国内镜像源配置、服务启动、权限管理、内核参数优化及防火墙设置。针对 Windows 环境,涵盖了 WSL 2 集成与 Hyper-V 配置。此外,还总结了容器网络、存储空间不足及镜像拉取失败等常见问题的排查方法与日志分析命令,帮助用户快速构建稳定的 Docker 运行环境。
奇形怪状1 浏览 Docker 是一个开源的容器化平台,用于开发、部署和运行应用程序。它通过容器技术将应用及其依赖项打包到一个可移植的标准化单元中,确保应用在不同环境中高效运行。
核心特点
| 特点 | 说明 |
|---|
| 轻量级 | 容器共享宿主机的操作系统内核,相比传统虚拟机更节省资源 |
| 可移植性 | 容器可在任何支持 Docker 的环境中运行,确保一致性 |
| 隔离性 | 每个容器独立运行,互不干扰,提高安全性 |
| 快速部署 | 秒级启动和停止,适合动态扩展和微服务架构 |
| 版本控制 | 支持镜像分层存储和版本管理,便于回滚和更新 |
主要应用场景
| 场景 | 说明 |
|---|
| 微服务架构 | 将单体应用拆分为多个独立容器,提高可维护性 |
| 持续集成/持续部署 (CI/CD) | 自动化构建、测试和发布流程 |
| 开发环境标准化 | 避免'在我机器上能运行'的问题,统一开发、测试和生产环境 |
| 云原生应用 | 与 Kubernetes 等编排工具结合,实现弹性伸缩和高可用 |
| 快速实验与测试 | 快速创建一次性环境,测试新技术或配置 |
优势
| 优势 | 说明 |
|---|
| 资源高效 | 相比虚拟机,容器占用更少 CPU 和内存 |
| 跨平台支持 | 可在 Linux、Windows 和 macOS 上运行 |
| 丰富的生态系统 | 提供 Docker Hub 等镜像仓库,方便共享和获取预构建镜像 |
| 简化运维 | 通过 Dockerfile 定义环境,减少手动配置错误 |
Linux 环境部署
安装前准备
系统要求检查
uname -r
lsb_release -a
uname -r
cat /etc/redhat-release
卸载旧版本 Docker
如果之前安装过 Docker,需要先卸载旧的版本。
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装基础依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg lsb-release
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
Docker 安装流程
配置国内镜像源(阿里云)
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
安装 Docker 引擎
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl status docker
配置镜像加速器
方案一:临时加速(单次有效)
sudo docker pull [镜像源]/镜像名:版本号
sudo docker pull docker.m.daocloud.io/hello-world:latest
方案二:永久配置(推荐)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
验证配置
sudo docker pull hello-world
docker info | grep Mirrors -A 3
用户权限配置(免 sudo)
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
docker run hello-world
内核参数优化 (可选)
sudo tee /etc/sysctl.d/docker.conf <<-'EOF'
net.ipv4.ip_forward=1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
vm.max_map_count=262144
fs.may_detach_mounts=1
EOF
sudo sysctl --system
存储驱动配置 (可选)
检查存储驱动
docker info | grep "Storage Driver"
配置 Overlay2 存储
sudo systemctl stop docker
sudo mv /var/lib/docker /var/lib/docker.bak
sudo mkdir -p /var/lib/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
sudo systemctl start docker
防火墙配置 (可选)
开放 Docker 端口
sudo firewall-cmd --zone=public --add-port=2375/tcp --permanent
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload
Docker 与 Firewalld 集成
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0
sudo firewall-cmd --permanent --zone=trusted --add-port=2376/tcp
sudo firewall-cmd --reload
故障排查指南
常见问题解决方案
问题 1:容器无法访问外网
sudo firewall-cmd --zone=public --add-masquerade --permanent
sudo firewall-cmd --reload
sudo systemctl restart docker
问题 2:存储空间不足
docker system df
docker system prune -a -f --volumes
问题 3:镜像拉取失败
DNS
sudo cat /etc/resolv.conf
sudo tee /etc/resolv.conf <<< "nameserver 8.8.8.8"
镜像源
sudo docker pull docker.m.daocloud.io/hello-world:latest
日志分析命令
journalctl -u docker.service --since "2025-08-01" --no-pager
docker logs -f [容器 ID] --tail 100
Windows 环境部署
安装前的准备工作
- 操作系统:Windows 10/11(专业版、企业版或家庭版支持 WSL 2)
- 内存:至少 4GB RAM
- 磁盘空间:至少 20GB 可用空间
- 虚拟化
- 启用 Hyper-V 和 WSL 2
- Docker Desktop 依赖 Hyper-V 和 WSL 2(Windows Subsystem for Linux)
- 打开'控制面板' > '程序' > '启用或关闭 Windows 功能'
- 勾选 Hyper-V、Windows Subsystem for Linux 和 虚拟机平台
- 安装 WSL 2
wsl --set-default-version 2
任务管理器 > 性能 > CPU > 虚拟化状态:'已启用'
下载和安装 (Docker Desktop)
下载
从官方渠道下载 Docker Desktop 安装包。
安装
- 双击安装包,进入安装向导
- 安装选项
- 勾选 Use WSL 2 instead of Hyper-V(推荐)
- 勾选 Add Docker Desktop to PATH
- 完成安装,点击 Close and restart 重启电脑
验证安装
- 启动 Docker Desktop
- 如果输出
Hello from Docker! 表示安装成功
docker --version
docker-compose --version
安装完成后,系统托盘会显示鲸鱼图标(表明 Docker 正在运行)
配置 Docker
配置镜像加速器(推荐)
Docker 默认从 Docker Hub 拉取镜像,国内用户可配置其他镜像源提升速度。
- 步骤:
- 打开 Docker Desktop > Settings > Docker Engine
- 编辑 daemon.json 文件,添加镜像源
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com"
]
}
配置 WSL 2 集成
- 启用 WSL 2 集成:
- Docker Desktop > Settings > Resources > WSL Integration
- 启用默认 WSL 发行版(如 Ubuntu)
可添加其他 WSL 发行版(如 Debian、Kali)
常见问题与解决方案
虚拟化未开启
- 错误提示:WSL 2 requires virtualization to be enabled in the BIOS
- 解决方法
- 进入 BIOS(开机时按 Del/F2/F12)开启虚拟化功能(Intel VT-x/AMD-V)
- 检查任务管理器 > 性能 > CPU > 是否显示'虚拟化:已启用'
Hyper-V 冲突
- 错误提示:Cannot connect to the Docker daemon at unix:///var/run/docker.sock
- 解决方法
- 关闭其他虚拟机软件(如 VirtualBox)。
- 通过 PowerShell 禁用 Hyper-V
bcdedit /set hypervisorlaunchtype off
Restart-Computer -Force
Docker Desktop 无法启动
Docker 镜像拉取失败
{
"dns": ["8.8.8.8", "114.114.114.114"]
}
{
"registry-mirrors": ["https://docker.m.daocloud.io","https://hub-mirror.c.163.com"]
}
微信扫一扫,关注极客日志
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
- HTML转Markdown
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
- JSON 压缩
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
- JSON美化和格式化
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online