Docker 入门实战:用容器化部署你的第一个应用

zheng头像
zheng 2026-07-14 12:00
楼主

> 有没有遇到过这种情况:代码在自己电脑上跑得好好的,部署到服务器就各种报错?环境不一致是开发者最头疼的问题之一。Docker 把应用和它的运行环境打包在一起,一次构建到处运行。

---

## 什么是 Docker?

Docker 就像一个轻量级的虚拟机。传统虚拟机要模拟整个操作系统,Docker 只隔离应用层,所以启动快(秒级)、占用资源少。

| 对比 | 传统虚拟机 | Docker 容器 |
|------|-----------|-------------|
| 启动速度 | 分钟级 | 秒级 |
| 磁盘占用 | GB 级 | MB 级 |
| 性能损耗 | 较高 | 几乎无 |
| 隔离级别 | 操作系统级 | 进程级 |

---

## 安装 Docker

```bash
# Ubuntu/Debian
curl -fsSL https://get.docker.com | bash

# 启动 Docker 服务
systemctl start docker
systemctl enable docker

# 验证安装
docker --version
```

---

## 核心概念

- **镜像(Image)**:应用的模板,类似于安装包
- **容器(Container)**:镜像运行起来的实例
- **仓库(Registry)**:存放镜像的地方,Docker Hub 是最大的公共仓库

---

## 第一个 Docker 应用:运行 Nginx

```bash
docker run -d --name my-nginx -p 8080:80 nginx
```

浏览器访问 http://你的服务器IP:8080,就能看到 Nginx 欢迎页面。

---

## 常用管理命令

| 命令 | 用途 |
|------|------|
| docker ps | 查看运行中的容器 |
| docker ps -a | 查看所有容器(含已停止) |
| docker stop my-nginx | 停止容器 |
| docker start my-nginx | 启动已停止的容器 |
| docker rm my-nginx | 删除容器 |
| docker images | 查看本地镜像列表 |
| docker logs my-nginx | 查看容器日志 |
| docker exec -it my-nginx bash | 进入容器内部 |

---

## 用 Docker Compose 管理多容器应用

真实项目中经常需要同时运行多个服务(比如 Web + 数据库),Docker Compose 可以一键启动所有服务。

```yaml
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: mypassword
```

一条命令全部启动:docker-compose up -d

---

## 实战:用 Docker 部署一个博客

```bash
docker run -d \
--name typecho \
-p 80:80 \
-v /opt/typecho:/app/usr \
80x86/typecho:latest
```

访问服务器 IP,就能看到 Typecho 安装界面了。整个过程不超过 2 分钟。

Docker 的好处就是你不用关心服务器装了什么版本的 PHP、MySQL,镜像里已经配好了。

Docker 服务器
Git 从零开始:版本控制完全指南(附常用命令速查表) Nginx 反向代理配置教程:一台服务器跑多个网站

最新回复

暂无回复,来说两句吧

发表评论

站点总访问量:6155