Docker入门到实践(一):从零开始掌握Docker核心与安装
一、Docker技术本质解析
1.1 容器化技术的革命性突破
传统开发环境中,应用部署面临”环境地狱”困境:开发环境与生产环境差异导致”在我机器上能运行”的经典问题。Docker通过容器化技术将应用及其依赖打包为标准化单元,实现”一次构建,到处运行”的愿景。其核心优势体现在:
- 资源隔离:基于Linux内核的cgroups和namespace机制,每个容器拥有独立进程空间、网络栈和文件系统
- 轻量级特性:容器共享主机内核,无需完整操作系统,典型镜像大小仅几十MB(相比虚拟机GB级)
- 秒级启动:容器启动时间较虚拟机缩短90%以上,特别适合微服务架构的弹性伸缩场景
1.2 Docker核心架构解析
Docker采用客户端-服务器(C/S)架构,主要组件包括:
- Docker Daemon:后台服务进程,负责镜像构建、容器管理等核心操作
- Docker Client:命令行工具(docker CLI),通过REST API与Daemon交互
- Docker Image:应用打包模板,采用分层存储结构(如Ubuntu基础层+Nginx应用层)
- Docker Container:Image的运行实例,通过联合文件系统实现写时复制(Copy-on-Write)
典型工作流示例:
# 1. 从Docker Hub拉取镜像docker pull nginx:latest# 2. 创建并启动容器docker run -d -p 80:80 --name web nginx# 3. 查看运行状态docker ps
二、Docker安装全指南
2.1 Linux系统安装(Ubuntu示例)
推荐配置:64位系统,内核≥3.10,建议4GB+内存
2.1.1 卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
2.1.2 安装依赖包
sudo apt-get updatesudo apt-get install \apt-transport-https \ca-certificates \curl \gnupg-agent \software-properties-common
2.1.3 添加官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
2.1.4 设置稳定版仓库
sudo add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) \stable"
2.1.5 安装Docker引擎
sudo apt-get updatesudo apt-get install docker-ce docker-ce-cli containerd.io
2.1.6 验证安装
sudo docker run hello-world# 输出应包含"Hello from Docker!"字样
2.2 macOS系统安装
系统要求:macOS 10.15及以上,建议8GB+内存
2.2.1 安装方式对比
| 方式 | 优点 | 缺点 |
|---|---|---|
| Docker Desktop | 图形界面,集成Kubernetes | 资源占用较高(约2GB内存) |
| Homebrew | 命令行安装,轻量级 | 需手动配置镜像加速 |
2.2.2 Docker Desktop安装
- 下载官方安装包
- 拖拽安装后启动,顶部菜单栏显示鲸鱼图标即表示运行
- 配置镜像加速(阿里云用户示例):
{"registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]}
路径:Preferences → Docker Engine
2.3 Windows系统安装
系统要求:Windows 10 64位(专业版/企业版/教育版),需启用Hyper-V或WSL2
2.3.1 WSL2后端安装(推荐)
- 启用WSL2功能:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartdism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 设置WSL2为默认版本:
wsl --set-default-version 2
- 安装Docker Desktop WSL2版本
2.3.2 Hyper-V后端安装
- 以管理员身份运行PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
- 重启后安装Docker Desktop,在Settings → General中确认使用Hyper-V
三、安装后必备配置
3.1 镜像加速配置
国内用户建议配置镜像加速器(以阿里云为例):
- 登录阿里云容器镜像服务
- 获取专属加速地址
- 修改
/etc/docker/daemon.json(Linux)或Docker Desktop设置:{"registry-mirrors": ["https://<your-accelerator>.mirror.aliyuncs.com"]}
- 重启Docker服务:
sudo systemctl restart docker
3.2 用户组管理
避免每次使用sudo的权限问题:
sudo groupadd dockersudo usermod -aG docker $USERnewgrp docker # 立即生效
3.3 基础命令速查
| 命令 | 功能说明 | 示例 |
|---|---|---|
docker ps |
列出运行中容器 | docker ps -a(包含已停止) |
docker images |
显示本地镜像 | docker images nginx |
docker build |
构建镜像 | docker build -t myapp . |
docker-compose |
多容器编排 | docker-compose up -d |
四、常见问题解决方案
4.1 启动容器失败处理
错误示例:Cannot connect to the Docker daemon
解决方案:
- 检查服务状态:
sudo systemctl status docker
- 重启服务:
sudo systemctl restart docker
- 检查用户组权限(参考3.2节)
4.2 镜像拉取缓慢
现象:Error response from daemon: Get https://registry-1.docker.io/...: net/http: TLS handshake timeout
解决方案:
- 配置镜像加速器(3.1节)
- 修改DNS为8.8.8.8或114.114.114.114
- 临时关闭防火墙测试:
sudo ufw disable # Ubuntu
4.3 存储空间清理
命令组合:
# 删除所有停止的容器docker rm $(docker ps -aq)# 删除所有未被使用的镜像docker rmi $(docker images -f "dangling=true" -q)# 清理构建缓存docker system prune -a
五、进阶建议
- 版本管理:使用
docker --version确认版本,建议保持最新稳定版 - 日志收集:配置
log-driver=json-file便于问题排查 - 安全实践:
- 避免使用
latest标签,指定具体版本号 - 定期更新基础镜像
- 使用
docker scan检测漏洞(需安装Docker Scan插件)
- 避免使用
通过本篇的系统学习,开发者已掌握Docker的核心概念与安装部署技能。后续章节将深入讲解镜像构建、容器编排等高级主题,助力构建现代化的容器化应用体系。