Docker入门到实践(一):从零开始掌握Docker核心与安装

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. # 1. 从Docker Hub拉取镜像
  2. docker pull nginx:latest
  3. # 2. 创建并启动容器
  4. docker run -d -p 80:80 --name web nginx
  5. # 3. 查看运行状态
  6. docker ps

二、Docker安装全指南

2.1 Linux系统安装(Ubuntu示例)

推荐配置:64位系统,内核≥3.10,建议4GB+内存

2.1.1 卸载旧版本

  1. sudo apt-get remove docker docker-engine docker.io containerd runc

2.1.2 安装依赖包

  1. sudo apt-get update
  2. sudo apt-get install \
  3. apt-transport-https \
  4. ca-certificates \
  5. curl \
  6. gnupg-agent \
  7. software-properties-common

2.1.3 添加官方GPG密钥

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

2.1.4 设置稳定版仓库

  1. sudo add-apt-repository \
  2. "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  3. $(lsb_release -cs) \
  4. stable"

2.1.5 安装Docker引擎

  1. sudo apt-get update
  2. sudo apt-get install docker-ce docker-ce-cli containerd.io

2.1.6 验证安装

  1. sudo docker run hello-world
  2. # 输出应包含"Hello from Docker!"字样

2.2 macOS系统安装

系统要求:macOS 10.15及以上,建议8GB+内存

2.2.1 安装方式对比

方式 优点 缺点
Docker Desktop 图形界面,集成Kubernetes 资源占用较高(约2GB内存)
Homebrew 命令行安装,轻量级 需手动配置镜像加速

2.2.2 Docker Desktop安装

  1. 下载官方安装包
  2. 拖拽安装后启动,顶部菜单栏显示鲸鱼图标即表示运行
  3. 配置镜像加速(阿里云用户示例):
    1. {
    2. "registry-mirrors": ["https://<your-id>.mirror.aliyuncs.com"]
    3. }

    路径:Preferences → Docker Engine

2.3 Windows系统安装

系统要求:Windows 10 64位(专业版/企业版/教育版),需启用Hyper-V或WSL2

2.3.1 WSL2后端安装(推荐)

  1. 启用WSL2功能:
    1. dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    2. dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  2. 设置WSL2为默认版本:
    1. wsl --set-default-version 2
  3. 安装Docker Desktop WSL2版本

2.3.2 Hyper-V后端安装

  1. 以管理员身份运行PowerShell:
    1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
  2. 重启后安装Docker Desktop,在Settings → General中确认使用Hyper-V

三、安装后必备配置

3.1 镜像加速配置

国内用户建议配置镜像加速器(以阿里云为例):

  1. 登录阿里云容器镜像服务
  2. 获取专属加速地址
  3. 修改/etc/docker/daemon.json(Linux)或Docker Desktop设置:
    1. {
    2. "registry-mirrors": ["https://<your-accelerator>.mirror.aliyuncs.com"]
    3. }
  4. 重启Docker服务:
    1. sudo systemctl restart docker

3.2 用户组管理

避免每次使用sudo的权限问题:

  1. sudo groupadd docker
  2. sudo usermod -aG docker $USER
  3. newgrp 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
解决方案

  1. 检查服务状态:
    1. sudo systemctl status docker
  2. 重启服务:
    1. sudo systemctl restart docker
  3. 检查用户组权限(参考3.2节)

4.2 镜像拉取缓慢

现象Error response from daemon: Get https://registry-1.docker.io/...: net/http: TLS handshake timeout
解决方案

  1. 配置镜像加速器(3.1节)
  2. 修改DNS为8.8.8.8或114.114.114.114
  3. 临时关闭防火墙测试:
    1. sudo ufw disable # Ubuntu

4.3 存储空间清理

命令组合

  1. # 删除所有停止的容器
  2. docker rm $(docker ps -aq)
  3. # 删除所有未被使用的镜像
  4. docker rmi $(docker images -f "dangling=true" -q)
  5. # 清理构建缓存
  6. docker system prune -a

五、进阶建议

  1. 版本管理:使用docker --version确认版本,建议保持最新稳定版
  2. 日志收集:配置log-driver=json-file便于问题排查
  3. 安全实践
    • 避免使用latest标签,指定具体版本号
    • 定期更新基础镜像
    • 使用docker scan检测漏洞(需安装Docker Scan插件)

通过本篇的系统学习,开发者已掌握Docker的核心概念与安装部署技能。后续章节将深入讲解镜像构建、容器编排等高级主题,助力构建现代化的容器化应用体系。