真码研习社
真码研习社
发布于 2026-05-21 / 0 阅读

Docker 零基础完整入门实战教程

一、前言:为什么新手必须学会 Docker?

很多转行初学程序员都会遇到经典开发问题:本地代码能跑,放到服务器就报错、换一台电脑就要重新配置环境、安装软件冲突、版本依赖混乱。

而 Docker 就是专门解决这类问题的工具,目前企业后端开发、服务器部署、微服务项目必备技术。本文专为零基础小白编写,无复杂底层原理、无晦涩专业术语,全程实操干货,看完可以独立完成项目打包、镜像制作、服务器部署。

二、Docker 核心基础认知(通俗讲解)

2.1 什么是 Docker?

用大白话解释:Docker 是一款容器化打包工具

它可以把代码、运行环境、依赖插件、配置文件统一打包成一个独立文件,打包后的文件可以在任意安装了 Docker 的电脑、服务器上一键运行,不会出现环境冲突、版本不一致问题。

2.2 Docker 核心优势(新手必看)

  1. 环境一致:本地、测试、生产服务器环境完全相同,彻底解决“本地能跑线上报错”;

  2. 轻量化占用低:对比虚拟机,Docker 不需要安装完整操作系统,内存、硬盘占用极小,启动速度秒级完成;

  3. 一键部署:打包好的镜像,一条命令即可运行项目,无需复杂配置;

  4. 隔离性强:不同项目容器相互独立,安装软件、修改配置互不干扰;

  5. 迁移方便:镜像可复制、可上传仓库,换服务器直接拉取部署。

2.3 主流应用场景

  • 个人项目、毕业设计快速部署上线;

  • 企业后端项目、微服务集群部署;

  • 开发环境搭建(MySQL、Redis、Nginx 一键安装);

  • 软件版本管理、多版本共存;

  • 测试环境快速搭建、销毁。

三、Docker 三大核心要素(镜像/容器/仓库)

新手最先混淆的三个概念,本文用通俗类比讲透,三者关系是 Docker 核心逻辑。

3.1 概念通俗解释

  1. 镜像(Image):模板、安装包。相当于手机APP安装包,静态文件,不可修改,包含项目代码、环境、依赖;

  2. 容器(Container):实例、运行中的程序。相当于打开运行后的手机APP,由镜像启动生成,可启停、删除;

  3. 仓库(Repository):存放镜像的云端仓库。相当于应用商店,官方公共仓库为 Docker Hub,可拉取别人做好的镜像,也可上传自己制作的镜像。

3.2 三者逻辑关系

仓库下载镜像 → 镜像启动生成容器 → 容器对外提供服务

补充关键常识:一个镜像可以启动无数个容器,容器删除不会影响原始镜像。

四、主流系统 Docker 安装教程(Windows/Linux/Mac)

4.1 Windows 系统安装(Win10/Win11)

4.1.1 安装前提

系统版本:Win10 专业版及以上、Win11;家庭版需手动开启虚拟机功能。

4.1.2 安装步骤

  1. 官网下载 Docker Desktop(Windows 可视化工具);

  2. 双击安装包,默认勾选全部组件,无脑下一步安装;

  3. 安装完成后重启电脑,启动 Docker Desktop;

  4. 打开终端(CMD/PowerShell),输入校验命令。

docker --version

输出版本号即安装成功。

4.2 Linux 系统安装(CentOS7+/Ubuntu20.04+)

4.2.1 CentOS 安装命令

# 1. 更新yum依赖
yum update -y
# 2. 安装依赖工具
yum install -y yum-utils
# 3. 设置docker阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 4. 安装docker核心组件
yum install -y docker-ce docker-ce-cli containerd.io
# 5. 启动docker并设置开机自启
systemctl start docker
systemctl enable docker
# 6. 校验版本
docker --version

4.2.2 Ubuntu 安装命令

# 1. 更新软件源
apt update
# 2. 安装依赖
apt install -y ca-certificates curl
# 3. 添加docker官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
# 4. 安装docker
apt install -y docker-ce docker-ce-cli containerd.io
# 5. 启动校验
systemctl start docker
docker --version

4.3 Mac 系统安装

  1. 官网下载 Docker Desktop for Mac;

  2. 拖拽安装包至应用程序,打开后等待初始化;

  3. 终端输入 docker \-\-version 校验。

4.4 必做配置:阿里云镜像加速(解决下载缓慢)

Docker 默认国外源下载速度极慢,新手必须配置国内镜像加速。

4.4.1 Windows/Mac 配置

  1. 打开 Docker Desktop,点击设置(Settings);

  2. 找到 Docker Engine,粘贴下方配置;

  3. 点击 Apply & Restart 重启生效。

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com",
    "https://aliyun.mirror.com"
  ]
}

4.4.2 Linux 配置

# 创建配置文件
mkdir -p /etc/docker
# 写入镜像源
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ]
}
EOF
# 重启docker
systemctl daemon-reload
systemctl restart docker

五、Docker 常用核心命令(逐条详解+实战示例)

所有命令区分大小写,本文按使用频率排序,标注释义、使用场景、实战示例,新手直接复制套用即可。

5.1 基础信息命令

# 1. 查看docker版本
docker --version
# 2. 查看docker详细信息
docker info
# 3. 帮助命令(忘记参数随时查)
docker 命令名 --help

5.2 镜像操作命令(重点)

# 1. 查看本地所有镜像
docker images
# 释义:列出已下载镜像,包含镜像名、版本、大小、ID
​
# 2. 搜索云端镜像
docker search nginx
# 场景:查找官方开源镜像(MySQL、Redis、Nginx)
​
# 3. 下载镜像(拉取镜像)
docker pull nginx:latest
# 释义:latest代表最新版本,可指定版本如mysql:8.0
​
# 4. 删除本地镜像
docker rmi 镜像ID/镜像名
# 示例:docker rmi nginx:latest
​
# 5. 镜像打包备份
docker save -o 备份文件名.tar 镜像名
# 6. 镜像导入恢复
docker load -i 备份文件名.tar

5.3 容器操作命令(高频常用)

# 1. 运行容器(最核心命令)
docker run [参数] 镜像名
# 常用参数详解:
# -d:后台静默运行
# --name:自定义容器名称
# -p 主机端口:容器端口:端口映射(外部访问必备)
# -v:文件挂载(数据持久化)
# -e:设置环境变量(数据库密码等)
​
# 实战示例:启动Nginx网页服务
docker run -d --name my-nginx -p 80:80 nginx:latest
​
# 2. 查看运行中的容器
docker ps
# 3. 查看全部容器(包含已停止)
docker ps -a
​
# 4. 启停重启容器
docker stop 容器名/容器ID    # 停止
docker start 容器名/容器ID  # 启动
docker restart 容器名/容器ID # 重启
​
# 5. 删除容器(必须停止后删除)
docker rm 容器ID
docker rm -f 容器ID # 强制删除运行中的容器
​
# 6. 进入容器内部(修改配置必备)
docker exec -it 容器ID bash
​
# 7. 查看容器运行日志
docker logs 容器ID
docker logs -f 容器ID # 实时滚动查看日志

5.4 数据卷命令(数据持久化)

# 1. 查看所有数据卷
docker volume ls
# 2. 创建数据卷
docker volume create 卷名
# 3. 删除无用数据卷
docker volume prune

六、Dockerfile 语法详解+完整实战案例

Dockerfile 是自定义镜像的脚本文件,新手想要打包自己的项目,必须掌握 Dockerfile,语法简单、固定格式,无需死记硬背。

6.1 Dockerfile 核心常用语法

语法指令

作用释义

使用场景

FROM

指定基础镜像

必须写第一行,依赖官方基础环境

MAINTAINER

作者信息

标注开发者姓名、联系方式

WORKDIR

设置工作目录

容器内代码存放路径

COPY

复制本地文件到容器

拷贝项目代码、配置文件

RUN

执行Linux命令

安装依赖、编译代码

EXPOSE

声明开放端口

告知外部容器暴露端口

CMD

容器启动执行命令

启动项目、运行服务

6.2 实战案例:打包静态网页项目

6.2.1 项目结构

my-web/
├── index.html    # 静态网页
└── Dockerfile    # 镜像构建脚本

6.2.2 编写 index.html

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Docker入门实战项目</title>
</head>
<body>
    <h1>恭喜你!Docker打包部署成功!</h1>
    <p>零基础教程实战案例</p>
</body>
</html>

6.2.3 编写 Dockerfile(无后缀,固定文件名)

# 1. 基础镜像:使用官方nginx
FROM nginx:latest
# 2. 作者信息
MAINTAINER 技术博主
# 3. 工作目录
WORKDIR /usr/share/nginx/html
# 4. 复制本地网页到容器
COPY index.html ./
# 5. 声明开放80端口
EXPOSE 80
# 6. 容器启动命令(nginx固定启动命令)
CMD ["nginx","-g","daemon off;"]

6.2.4 构建镜像命令

# 格式:docker build -t 镜像名:版本 目录
docker build -t my-web:1.0 .
# 注意:末尾小数点不可省略,代表当前目录

6.2.5 启动自定义镜像容器

docker run -d --name web-demo -p 8080:80 my-web:1.0

6.2.6 访问测试

浏览器输入:localhost:8080,看到网页内容即打包成功。

七、容器编排:Docker Compose 多容器部署

7.1 什么是 Compose?

单个项目通常需要多个服务(例如后端程序+MySQL+Redis),逐个启动容器繁琐且容易出错。Docker Compose 是多容器编排工具,通过一个yml配置文件,一键启动、停止所有服务。

7.2 Compose 核心语法

  • version:指定配置文件版本;

  • services:定义所有容器服务;

  • ports:端口映射;

  • volumes:数据挂载;

  • depends_on:服务启动依赖顺序。

7.3 实战案例:Nginx+MySQL 组合部署

7.3.1 编写 docker-compose.yml

version: '3.8'
services:
  # Nginx网页服务
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    restart: always
  # MySQL数据库服务
  mysql:
    image: mysql:8.0
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: test_db
    volumes:
      - mysql-data:/var/lib/mysql
    restart: always
volumes:
  mysql-data:

7.3.2 常用编排命令

# 前台启动服务(查看日志)
docker-compose up
# 后台静默启动
docker-compose up -d
# 停止服务(保留数据)
docker-compose down
# 停止并删除所有数据卷
docker-compose down -v

八、新手入门避坑指南+排错小技巧

8.1 高频避坑要点

  1. 端口冲突:同一主机端口只能被一个容器占用,报错先检查端口是否被占用,修改映射端口即可;

  2. 镜像下载失败:优先检查镜像加速源,国外镜像可切换阿里云加速;

  3. 容器启动立即退出:大部分是前台程序未运行,服务无任务会自动关闭,添加后台运行参数 \-d

  4. 数据丢失:容器删除数据同步清空,重要数据必须配置数据卷挂载;

  5. 权限不足:Linux 系统建议普通用户加入docker组,避免频繁使用sudo。

8.2 实用排错命令

# 1. 查看容器报错日志(排错首选)
docker logs 容器ID
# 2. 检查容器详细配置
docker inspect 容器ID
# 3. 清理无用镜像、容器、缓存
docker system prune -a
# 4. 强制终止卡死容器
docker kill 容器ID

九、完整总结+学习路线

9.1 本文知识总结

本文从零讲解 Docker,涵盖核心概念、多系统安装、镜像容器仓库关系、常用命令、Dockerfile自定义镜像、Compose容器编排、项目实战、排错避坑,完整覆盖新手入门必备知识点,学完可独立完成个人项目打包、服务器部署。

9.2 新手进阶学习路线

  1. 熟练掌握基础命令,能够独立启停容器;

  2. 手写Dockerfile,打包Java/Node/Python各类项目;

  3. 精通Docker Compose编排多服务;

  4. 学习私有仓库搭建、镜像优化、网络配置;

  5. 进阶学习K8s容器编排,适配企业微服务架构。