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

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

一、Docker简介:重新定义应用部署方式

1.1 容器化技术的革命性突破

Docker作为容器化技术的代表,通过轻量级虚拟化标准化打包,解决了传统开发中的三大痛点:

  • 环境一致性:开发、测试、生产环境差异导致”在我机器上能运行”的问题
  • 资源利用率:虚拟机占用大量系统资源,Docker容器共享内核,启动速度以秒计
  • 部署效率:传统部署需配置服务器、安装依赖,Docker通过镜像实现”一键部署”

典型案例:某电商平台采用Docker后,将微服务部署时间从2小时缩短至5分钟,服务器资源利用率提升40%。

1.2 核心概念解析

  • 镜像(Image):应用的只读模板,包含代码、运行时、系统工具等。例如:nginx:latest镜像包含完整的Web服务器环境
  • 容器(Container):镜像的运行实例,每个容器相互隔离但共享内核
  • 仓库(Registry):镜像存储库,Docker Hub官方仓库已收录超过150万个镜像
  • Dockerfile:文本文件,定义镜像构建步骤,示例:
    1. FROM python:3.9-slim
    2. WORKDIR /app
    3. COPY requirements.txt .
    4. RUN pip install -r requirements.txt
    5. COPY . .
    6. CMD ["python", "app.py"]

1.3 技术优势对比

特性 Docker容器 传统虚拟机
启动速度 秒级 分钟级
资源占用 MB级别 GB级别
隔离性 进程级隔离 硬件级隔离
镜像大小 通常<500MB 通常>5GB
跨平台性 依赖Linux内核 全虚拟化支持

二、Docker安装实践:三步完成环境搭建

2.1 系统要求验证

  • Linux:推荐Ubuntu 20.04/CentOS 7+,内核版本≥3.10
  • macOS:macOS 10.15+(需HyperKit支持)
  • Windows:Win10/11专业版(需WSL2或Hyper-V)

验证命令:

  1. # Linux内核版本检查
  2. uname -r
  3. # 内存检查(建议≥4GB)
  4. free -h

2.2 分步安装指南

Linux系统安装(Ubuntu示例)

  1. # 卸载旧版本(如有)
  2. sudo apt-get remove docker docker-engine docker.io containerd runc
  3. # 安装依赖
  4. sudo apt-get update
  5. sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  6. # 添加Docker官方GPG密钥
  7. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  8. # 添加稳定版仓库
  9. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  10. # 安装Docker CE
  11. sudo apt-get update
  12. sudo apt-get install docker-ce docker-ce-cli containerd.io
  13. # 验证安装
  14. sudo docker run hello-world

Windows/macOS安装

  1. 访问Docker Desktop官网
  2. 下载对应版本安装包
  3. 双击安装,保持默认设置
  4. 安装完成后启动,终端执行:
    1. docker --version
    2. docker run hello-world

2.3 安装后必要配置

用户组管理(避免每次使用sudo)

  1. sudo groupadd docker
  2. sudo usermod -aG docker $USER
  3. newgrp docker # 立即生效

镜像加速配置(国内用户必备)

编辑/etc/docker/daemon.json(Linux)或Docker Desktop设置(Win/Mac):

  1. {
  2. "registry-mirrors": [
  3. "https://registry.docker-cn.com",
  4. "https://mirror.baidubce.com"
  5. ]
  6. }

重启服务:

  1. sudo systemctl restart docker

三、验证环境与基础操作

3.1 第一个Docker容器

  1. # 运行Nginx容器
  2. docker run --name my-nginx -p 8080:80 -d nginx
  3. # 验证访问
  4. curl http://localhost:8080
  5. # 或浏览器访问 http://localhost:8080
  6. # 查看运行中的容器
  7. docker ps

3.2 常用管理命令

命令 说明 示例
docker images 列出本地镜像
docker rm 删除容器 docker rm my-nginx
docker rmi 删除镜像 docker rmi nginx:latest
docker exec 进入运行中的容器 docker exec -it my-nginx bash
docker logs 查看容器日志 docker logs my-nginx

3.3 典型问题解决方案

  1. 权限不足错误

    • 现象:Got permission denied
    • 解决:执行sudo chmod 666 /var/run/docker.sock或添加用户到docker组
  2. 端口冲突

    • 现象:Bind for 0.0.0.0:8080 failed
    • 解决:更换宿主端口或停止占用进程
  3. 镜像下载慢

    • 现象:Error response from daemon: Get https://registry-1.docker.io/v2/...
    • 解决:配置镜像加速器(见2.3节)

四、进阶建议与学习路径

  1. 实践项目推荐

    • 部署WordPress博客(需MySQL+WordPress两个容器)
    • 构建Python Flask应用镜像
    • 使用Docker Compose编排多容器应用
  2. 学习资源

    • 官方文档:Docker Docs
    • 实战书籍:《Docker从入门到实践》
    • 实验平台:Play with Docker(在线实验室)
  3. 安全建议

    • 定期更新Docker版本
    • 避免使用root用户运行容器
    • 限制容器资源(CPU/内存)

通过本文的安装与基础操作,读者已具备使用Docker进行应用容器化的基本能力。后续章节将深入讲解镜像构建、网络配置、数据卷管理等高级主题,帮助读者从入门走向精通。