Docker:应用部署的神器

以前在 Linux 上安装软件(比如 MySQL、PHP),经常会遇到各种依赖冲突,装一天都装不好。 Docker 的出现改变了一切。它把软件和环境打包成一个“集装箱”,你只需要一句命令,就能直接拉取并运行,用完即删,不污染系统。

1. 一键安装脚本

不管你是 Debian、Ubuntu 还是 CentOS,都可以使用 Docker 官方的一键安装脚本。

SSH 连接服务器,输入:

curl -fsSL https://get.docker.com | bash

(等待进度条跑完,大概需要 1-3 分钟)

2. 启动并设置开机自启

安装完成后,需要告诉系统:我要用它,并且开机自动运行。

systemctl start docker
systemctl enable docker

3. 安装 Docker Compose

Docker 只能管理单个容器,而 Docker Compose 可以用一个文本文件管理多个容器(比如同时启动 博客+数据库),是部署复杂应用的神器。

输入以下命令安装最新版:

# 下载文件
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 赋予执行权限
chmod +x /usr/local/bin/docker-compose

# 验证安装是否成功
docker-compose --version

如果你看到类似 Docker Compose version v2.x.x 的输出,说明安装成功!

📄 3.2 Nginx Proxy Manager:小白也能用的反代神器

建议保存路径:/wiki/app/npm-guide.md

Nginx Proxy Manager (NPM):给你的服务穿上西装

假设你在 VPS 上装了一个网盘,访问地址是 http://1.2.3.4:5244。 这就很丑,而且不安全。 我们想要的效果是:访问 https://disk.yourdomain.com 直接进入。

这就需要 反向代理。手写 Nginx 配置太难,我们用图形化界面的 NPM

1. 准备工作

  • 你需要一个域名(在 Namesilo/阿里云 购买)。
  • 将域名解析到你 VPS 的 IP(A 记录)。
  • VPS 的 80443 端口没有被占用。

2. 部署 NPM

创建一个文件夹并创建配置文件:

mkdir -p /root/data/docker_data/npm
cd /root/data/docker_data/npm
nano docker-compose.yml

粘贴以下内容(这是标准配置):

version: "3"
services:
  app:
    image: "jc21/nginx-proxy-manager:latest"
    restart: unless-stopped
    ports:
      - "80:80" # 网页默认端口
      - "81:81" # NPM 管理后台端口
      - "443:443" # HTTPS 端口
    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

Ctrl+O 回车保存,Ctrl+X 退出。然后启动:

docker-compose up -d

3. 登录后台

在浏览器访问:http://你的VPS_IP:81

  • 默认账号: admin@example.com
  • 默认密码: changeme

(登录后请立即修改邮箱和密码)

4. 申请 SSL 证书与反代

  1. 点击 Proxy Hosts -> Add Proxy Host
  2. Domain Names: 填你的域名 (如 blog.abc.com)。
  3. Forward Host: 填 VPS 的内网 IP (通常是 172.17.0.1) 或者容器名。
  4. Forward Port: 填你实际服务的端口 (比如 5244)。
  5. 切换到 SSL 选项卡:
    • SSL Certificate: 选择 "Request a new SSL Certificate"。
    • 勾选 Force SSL (强制 https)。
    • 勾选 I Agree...
  6. 点击 Save,搞定!

📄 3.3 实战:5 分钟搭建 WordPress 博客

建议保存路径:/wiki/app/wordpress.md

实战:搭建全球最流行的博客 WordPress

即使在自媒体时代,拥有一个属于自己的、数据完全掌握在自己手中的博客,依然是一件很酷的事情。

1. 创建目录

mkdir -p /root/data/docker_data/wordpress
cd /root/data/docker_data/wordpress
nano docker-compose.yml

2. 编写配置

粘贴以下内容:

version: "3"

services:
  db:
    image: mysql:5.7
    volumes:
      - ./db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_root_password # 请修改这里:数据库root密码
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: your_wordpress_password # 请修改这里:数据库用户密码

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80" # 左边的8000可以改成任意未占用的端口
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: your_wordpress_password # 必须和上面数据库用户密码一致
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp_data:/var/www/html

⚠️ 注意:请务必修改里面的密码部分!

3. 启动服务

docker-compose up -d

4. 完成安装

  1. 此时,你可以通过 http://你的IP:8000 访问博客。
  2. 配合上一篇的 NPM,添加一个反向代理:
    • 域名:blog.你的域名.com
    • 转发端口:8000
  3. 访问域名,按照屏幕提示设置博客标题、管理员账号,开始你的写作之旅吧!