AI智能摘要
先搞懂 Docker 的价值,再用国内加速脚本把环境装好,并通过两个一分钟练习感受容器的“开箱即用”
此摘要由AI分析文章内容生成,仅供参考。

🤔 为什么非 Docker 不可?

  • 🧩 环境对齐:打包“应用 + 依赖 + 配置”,告别“在我机器上才能跑”。

  • 🚀 上线迅速:镜像秒级启动,回滚、扩容都像换盒子一样简单。

  • 🙌 团队协作:新人拉镜像就能开发,交付标准化。

🧠 Docker 和虚拟机有啥区别?

  • 容器:共用宿主机内核,只隔离用户态进程 ➡️ 更轻、更快。

  • 虚拟机:自带完整 OS 和内核 ➡️ 更重、启动慢。

  • 三件宝:镜像(模板)、容器(实例)、仓库(镜像存放地)。

🔭 常见落地场景

  • 开发同学:一套镜像全队通用,10 分钟进项目。

  • 运维部署:微服务拆箱、滚动升级、快速回滚。

  • CI/CD:流水线里构建镜像→跑测试→推送→上线。

  • 教学演示:发镜像就能复现实验环境。

🗺️ 学习路线

graph TD A[理解价值<br/>本篇] --> B[安装与加速<br/>本篇] B --> C[跑两个容器<br/>本篇] C --> D[写 Dockerfile(后续讲解)] D --> E[熟悉命令行(后续讲解)] E --> F[自动化/上线]

⚡ 快速安装(中国地区)

  1. ✅ 准备脚本:仓库根目录已提供 install-docker-cn.sh(内置镜像测速、国内 registry mirror)。

  2. 🔧 赋权运行:

    chmod +x install-docker-cn.sh
    ./install-docker-cn.sh            # 默认写入国内镜像加速
    ./install-docker-cn.sh --help     # 查看可选参数
  3. 🧪 验证:

    docker version
    docker run --rm hello-world

如果脚本被防火墙策略挡掉,可根据终端提示切换离线包或手动源。


🚀 两个 1 分钟练习

  1. Nginx 静态站点

    docker run -d --name web -p 8080:80 nginx:stable
    # 浏览器打开 http://localhost:8080
    docker rm -f web  # ✅ 玩完别忘了删
  2. MySQL + Adminer(Docker Compose)

    # docker-compose.yml
    services:
      db:
        image: mysql:8
        environment:
          - MYSQL_ROOT_PASSWORD=secret
        volumes:
          - db_data:/var/lib/mysql
      adminer:
        image: adminer
        ports:
          - 9090:8080
    volumes:
      db_data:
    docker compose up -d
    # 浏览器打开 http://localhost:9090 连接 db(账户 root/secret)
    docker compose down --volumes  # ✅ 清理容器和数据卷

🛠️ 常见小坑

  • Cannot connect to the Docker daemonsystemctl status docker 看服务是否启动。

  • ⚠️ 总要 sudo 才能 docker → sudo usermod -aG docker $USER,重新登录。

  • 🐢 拉镜像慢 → 检查 /etc/docker/daemon.json 是否写了国内 registry-mirrors

  • 🧊 磁盘告警 → docker system df 看占用,确认后再 docker system prune

  • 🪟 WSL/老系统 → 先确认支持 systemd 或升级内核。