Docker 入门教程:从安装到部署,第一个 Docker 项目实战(2026 最新)

如果你做过项目部署,应该都遇到过这样的情况:

「代码在我电脑上运行完全正常,为什么部署到服务器就报错?」

又或者:

「昨天还能运行,今天重装系统后环境全没了。」

造成这些问题的原因,大多数不是代码本身,而是运行环境不一致

例如:

  • Node.js 版本不同
  • PHP 扩展缺失
  • MySQL 版本不同
  • Python 依赖冲突
  • 系统环境变量不一致

Docker 正是为了解决这些问题而诞生。

它可以把应用程序和运行环境一起打包成一个标准化容器,无论是在 Windows、Linux、macOS,还是云服务器(VPS)上,都能够保持一致的运行效果。

我现在部署绝大多数项目时,都会优先选择 Docker。

原因很简单:

  • 更容易迁移
  • 更容易部署
  • 更容易备份
  • 更容易升级
  • 环境一致,不容易踩坑

本文将从零开始,带你理解 Docker 的核心概念,并通过实际案例快速掌握 Docker 的日常开发与部署流程。


本文将学习哪些内容?

阅读完本文,你将掌握:

  • Docker 是什么
  • Docker 与虚拟机有什么区别
  • Docker Desktop 安装方法
  • Linux 安装 Docker
  • Image(镜像)
  • Container(容器)
  • Registry(镜像仓库)
  • Docker 常用命令
  • 使用 Docker 快速部署 WordPress

下一篇还会继续介绍:

  • Dockerfile
  • Docker Compose(Compose V2)
  • Volume 数据卷
  • Network 网络
  • Docker 最佳实践

一、什么是 Docker?

Docker 是一种容器化(Containerization)技术

它可以把:

  • 应用程序
  • 运行环境
  • 依赖库
  • 配置文件

全部打包到一个容器中。

这个容器可以运行在任何安装了 Docker 的机器上,而不用担心环境差异。

例如:

你的项目需要:

  • PHP 8.3
  • MySQL 8
  • Redis
  • Nginx

传统方式:

需要一台服务器一项一项安装。

Docker:

只需要运行几个容器即可。

整个环境几分钟内就能搭建完成。


Docker 为什么越来越流行?

Docker 最大的优势可以概括为四个字:

一次构建,到处运行(Build Once, Run Anywhere)

开发阶段:

Windows

测试环境:

Ubuntu

生产服务器:

CentOS

云服务器:

阿里云、腾讯云、AWS

全部使用同一套环境。

不会再出现:

“我电脑能运行”

这种经典问题。

对于团队协作来说,这一点尤为重要。


Docker 和虚拟机有什么区别?

很多初学者第一次接触 Docker,都会把它和 VMware、VirtualBox 等虚拟机混淆。

虽然它们都可以隔离运行环境,但原理完全不同。

对比项Docker虚拟机
启动速度秒级分钟级
占用空间几十 MB~几百 MB几 GB~几十 GB
系统内核与宿主机共享每台虚拟机独立
性能接近原生有一定损耗
部署速度非常快较慢

可以把它们理解成:

虚拟机:

就像盖一栋新的房子。

里面:

  • 厨房
  • 卫生间
  • 水电

全部重新建设。

Docker:

更像是在同一栋楼里放置多个独立集装箱。

大家共用基础设施,但彼此互不影响。

正因为如此,Docker 才能够做到:

  • 启动快
  • 占用资源少
  • 部署速度快

也是目前云原生开发最主流的部署方式。


二、安装 Docker

不同操作系统安装方式略有区别。

目前推荐使用官方版本。


Windows 安装 Docker Desktop

Windows 用户建议直接安装 Docker Desktop

安装前建议确认:

  • Windows 10 / Windows 11
  • 已开启 WSL2
  • 开启 Hyper-V(部分版本需要)

安装完成后,打开终端执行:

docker --version

如果输出类似:

Docker version 28.x.x

说明安装成功。

随后再执行:

docker info

如果能够看到 Docker Engine 信息,则说明 Docker 服务已经正常运行。


Ubuntu 安装 Docker

更新软件源:

sudo apt update

安装 Docker:

sudo apt install docker.io

启动服务:

sudo systemctl start docker

设置开机自启:

sudo systemctl enable docker

为了避免每次执行 Docker 命令都输入 sudo,建议把当前用户加入 Docker 用户组:

sudo usermod -aG docker $USER

执行完成后重新登录终端即可生效。

安装完成后,同样可以执行:

docker --version

验证是否安装成功。


三、Docker 的三个核心概念

学习 Docker,不需要记住所有命令。

真正需要理解的是三个核心概念:

  • Image(镜像)
  • Container(容器)
  • Registry(镜像仓库)

理解了这三个概念,就已经掌握了 Docker 的基础。


1、Image(镜像)

镜像可以理解为:

一个已经打包好的运行环境。

里面包含:

  • 操作系统基础环境
  • 软件
  • 依赖库
  • 启动命令

例如:

nginx

mysql

redis

wordpress

node

python

这些官方镜像,都可以直接下载使用。

镜像本身是只读的。

它更像一个安装包。


2、Container(容器)

容器就是:

镜像运行后的实例。

例如:

下载:

nginx

镜像。

然后执行:

docker run nginx

Docker 就会创建一个真正运行中的容器。

一个镜像可以创建:

  • 一个容器
  • 十个容器
  • 一百个容器

它们互相独立。


3、Registry(镜像仓库)

镜像需要存放。

Docker 使用 Registry 保存镜像。

最常见的是:

Docker Hub。

里面提供:

  • Ubuntu
  • MySQL
  • Redis
  • MongoDB
  • PostgreSQL
  • WordPress
  • Jenkins

等数十万个镜像。

平时执行:

docker pull nginx

实际上就是从 Docker Hub 下载镜像。

整个流程可以理解为:

Docker Hub

↓

docker pull

↓

Image

↓

docker run

↓

Container

理解这个流程后,后面的 Dockerfile 和 Compose 就会容易很多。


四、Docker 常用命令

日常开发中,并不需要记住所有命令。

下面这些命令已经能够覆盖绝大多数使用场景。

查看 Docker 版本

docker --version

查看 Docker 服务信息:

docker info

下载镜像

例如下载最新版 Nginx:

docker pull nginx

下载完成后,可以查看本地镜像:

docker images

输出会显示镜像名称、版本、创建时间以及占用空间。

如果镜像不再使用,可以删除:

docker rmi nginx

如果不知道镜像名称,还可以搜索:

docker search mysql

选择官方维护的镜像通常更加安全、更新也更及时。

发表评论