【DevOps实战篇】使用Portainer启动WordPress CMS堆栈应用
@TOC
推荐超级课程:
WordPress CMS 运行在不同的环境中。如果你使用的是 Docker,Portainer 是一个很好的用户界面来管理 Docker 环境。这意味着你可以使用 Portainer 来安装和运行你的 WordPress CMS。
在本指南中,你将学习如何使用 Portainer 安装并准备就绪 WordPress。你将学习:
- 如何设置 Portainer 。
- 使用 Portainer stack 来运行 WordPress 和 MySQL。
- 安装并访问在 Portainer 上运行的 WordPress。
使用 Portainer 安装 WordPress 的要求
在使用 WordPress Portainer 设置之前,请确保:
你的计算机上已经安装并运行了 Docker 。
对 WordPress 和 Docker 有基本的了解。
什么是 Portainer
Portainer 是一个用于管理 Docker 环境的容器管理工具。它提供了直观的用户界面。通过 Portainer,你可以轻松部署、管理和监控容器和容器集群。
Portainer 支持像 Docker Desktop、Docker Swarm 和 Kubernetes 这样的 Docker 环境。
使用 Portainer 安装 WordPress 的理由
你可以直接使用 Docker 来运行 WordPress 站点。那为什么要使用 Portainer 安装 WordPress 呢?
- Portainer 具有身份验证和访问控制功能,提高了安全性。
- Portainer 从单一界面管理所有容器。为整个 WordPress stack 提供集中控制。
- 你不需要编写复杂的 Docker Compose 命令。
步骤1: 如何为 WordPress 设置 Portainer
在创建 Portainer 容器时,我喜欢使用 Docker Compose。这可以使你更好地控制容器。继续创建一个 docker-compose.yml
文件,并创建一个 Portainer Docker 容器来运行 Portainer Community Edition,示例如下:
version: '3.9'
services:
portainer:
# 使用这个 Portainer Community Edition 基础镜像
image: portainer/portainer-ce
# 在这里为你的容器分配一个名称
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
# 用于 Docker API 访问(套接字)的卷
- /var/run/docker.sock:/var/run/docker.sock
# 挂载 Portainer 卷
- portainer_data:/data
volumes:
portainer_data:
在包含 docker-compose.yml
文件的路径下,运行以下命令来运行容器:
docker compose up -d
如果执行上述命令,你应该准备好 Portainer 容器:
docker ps
步骤2: 如何访问 Portainer
现在,打开 http://your_server_ip:9000
或 http://localhost:9000
。你应该看到 Portainer 运行中:
添加一个新用户以访问仪表板,如下:
现在,选择 Get Started 来访问 Portainer 并添加本地 Docker 环境:
一旦你点击上面的本地环境,你就已经准备好在下一步中运行 WordPress 的仪表板:
步骤3: 使用 Portainer 安装 WordPress
WordPress 使用 WordPress 镜像和一个 SQL 数据库。在这种情况下是 MySQL。这意味着你只能使用 Docker Compose 与 Portainer 一起运行 WordPress。
然而,使用 Portainer 你不需要创建 Docker Compose 文件和运行 Docker 命令。你只需要使用 Portainer UI 来运行整个 WordPress stack。
一旦 WordPress 运行起来,你将需要一个 GUI 来访问 MySQL。我将使用 Portainer 来运行 PhpMyAdmin。
现在,使用以下 WordPress MySQL stack:
version: '3.9'
services:
wordpress:
image: wordpress:latest
ports:
# 将 WordPress 暴露在端口 8080 上
- "8080:80"
environment:
# 设置 WordPress 连接到 MySQL 数据库
WORDPRESS_DB_HOST: mysql_db
WORDPRESS_DB_NAME: wordpress_db
WORDPRESS_DB_USER: wordpress_user
WORDPRESS_DB_PASSWORD: wordpress_password
volumes:
# 挂载本地目录用于 WordPress 文件
- "./wordpress:/var/www/html"
# 挂载用于持久 WordPress 数据的卷
- wordpress_data:/var/www/html
depends_on:
- mysql_db
networks:
- portainer_network
mysql_db:
image: mysql:5.7
environment:
# 设置 MySQL 数据库和用户凭据
MYSQL_DATABASE: wordpress_db
MYSQL_USER: wordpress_user
MYSQL_PASSWORD: wordpress_password
MYSQL_ROOT_PASSWORD: root_password
volumes:
# 挂载用于持久 MySQL 数据的卷
- db_data:/var/lib/mysql
networks:
- portainer_network
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
# 将 PHPMyAdmin 暴露在端口 8181 上
- "8181:80"
depends_on:
- mysql_db
environment:
# 设置 PHPMyAdmin 连接到 MySQL 数据库
PMA_HOST: mysql_db
PMA_USER: root
MYSQL_ROOT_PASSWORD: root_password
networks:
- portainer_network
networks:
portainer_network:
volumes:
# WordPress 数据的持久体积
wordpress:
wordpress_data:
db_data: # MySQL 数据的持久体积
去 Portainer 运行 WordPress。你将看到以下 Stack 部分:
为你的新 Stack WordPress 命名:
现在,使用 Portainer Web Editor,添加上述 WordPress Docker Compose Stack 如下 (添加 MySQL、WordPress 和 PhpMyAdmin):
最后,去到动作,并 部署 Stack:
你需要给 Portainer 一些时间来拉取所有 WordPress 设置并运行容器。
步骤4: 访问 Portainer 上的 WordPress
一旦 Stack 部署完成,Portainer 会指引你进入创建的 Stack 如下:
进入容器部分,确保所有 Portainer WordPress 服务都在运行:
步骤5: 使用 Portainer 安装 WordPress CMS
所有的服务都在运行。要安装 WordPress,打开浏览器的端口 8080 (http://localhost:8080/
). 你应该看到 WordPress 如下:
点击 继续 并设置你的 WordPress 如下:
一旦你 安装,使用添加的细节登录,WordPress 应该已准备就绪,并与 Portainer 完美运行:
步骤6: 使用 Portainer 访问 WordPress MySQL 数据库与 PhpMyAdmin
如果你想要访问此 WordPress 的数据库主机,打开端口 8181 (http://localhost:8181/
) 访问 PhpMyAdmin:
总结
你现在有 WordPress CMS 与 Portainer 一起运行。希望你已经学会了:
- 如何设置 Portainer。
- 使用 Portainer stack 运行 WordPress 和 MySQL。
- 安装并访问在 Portainer 上运行的 WordPress。