资源栈 - www.zyz88.com

Docker容器化部署实战:从入门到WordPress一键部署

admin
2026-09-12 2 阅读 0 评论 0 点赞

Docker容器化技术已经成为现代服务器部署的标准方式。相比传统的直接安装,Docker提供了环境隔离、快速部署、易于迁移等优势。对于站长来说,掌握Docker可以大大降低运维复杂度,提升服务器资源利用率。本文将从基础概念到实战部署,带你全面掌握Docker在网站运维中的应用。

一、Docker核心概念

理解Docker的三个核心概念是入门的关键:

概念 说明 类比
镜像Image 只读模板,包含运行环境和代码 软件安装包
容器Container 镜像的运行实例,可读写 运行中的软件
仓库Registry 存储和分发镜像的服务 应用商店

二、Docker安装与基础配置

# CentOS安装Docker
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io
systemctl enable docker && systemctl start docker

# 配置镜像加速器(国内必配)
mkdir -p /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "https://hub-mirror.c.163.com"
  ],
  "log-driver": "json-file",
  "log-opts": {"max-size": "100m", "max-file": "3"}
}
EOF
systemctl daemon-reload && systemctl restart 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部署WordPress

使用docker-compose一键部署WordPress + MySQL + Nginx:

mkdir -p /opt/wordpress && cd /opt/wordpress
cat > docker-compose.yml <<EOF
version: '3.8'
services:
  db:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: strongpassword
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wpuser
      MYSQL_PASSWORD: wppassword
    volumes:
      - db_data:/var/lib/mysql
    command: --default-authentication-plugin=mysql_native_password

  wordpress:
    image: wordpress:php8.2-fpm
    restart: always
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wpuser
      WORDPRESS_DB_PASSWORD: wppassword
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wp_data:/var/www/html

  nginx:
    image: nginx:alpine
    restart: always
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - wp_data:/var/www/html
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./ssl:/etc/nginx/ssl
    depends_on:
      - wordpress

volumes:
  db_data:
  wp_data:
EOF

# 启动服务
docker-compose up -d
# 查看状态
docker-compose ps
# 查看日志
docker-compose logs -f wordpress

四、容器管理常用命令

操作 命令 说明
查看容器 docker ps -a 列出所有容器
查看日志 docker logs -f 容器名 实时查看日志
进入容器 docker exec -it 容器名 bash 进入容器内部
停止容器 docker stop 容器名 停止运行
删除容器 docker rm 容器名 删除容器
查看镜像 docker images 列出本地镜像
清理资源 docker system prune -a 清理未使用的镜像和容器

五、数据持久化与备份

Docker容器删除后数据会丢失,必须使用Volume进行数据持久化。备份策略:

# 备份MySQL数据库
docker exec mysql_container mysqldump -u root -ppassword wordpress | gzip > backup_$(date +%Y%m%d).sql.gz

# 备份WordPress文件
docker run --rm -v wp_data:/data -v $(pwd):/backup alpine tar czf /backup/wp_backup.tar.gz -C /data .

# 恢复数据库
gunzip < backup_20260101.sql.gz | docker exec -i mysql_container mysql -u root -ppassword wordpress

六、容器安全最佳实践

  • 使用官方镜像或可信来源的镜像,定期扫描漏洞
  • 容器以非root用户运行,最小权限原则
  • 不要在镜像中硬编码密码,使用环境变量或Secret
  • 限制容器资源使用(CPU、内存)
  • 定期更新基础镜像,及时修复安全漏洞
  • 使用docker-compose版本管理,配置文件纳入版本控制

资源限制配置示例:

services:
  wordpress:
    image: wordpress:php8.2-fpm
    deploy:
      resources:
        limits:
          cpus: '1.0'
          memory: 512M
        reservations:
          cpus: '0.5'
          memory: 256M
文章标题 Docker容器化部署实战:从入门到WordPress一键部署
本文由 资源栈 原创发布,转载请注明出处并保留原文链接。