使用Docker Compose运行WordPress

首先

因为我轻易地搭建了WordPress,所以记录下来。从前被分配到搭建WordPress服务器的任务时,我费了很多劲在旧电脑上进行各种安装并且遇到了麻烦。但是时代改变了,刚刚我轻而易举地完成了。所以记录下来。

原始素材是Docker-compose的快速入门。

環境是WSL2(Windows子系统Linux2)。前提是已经安装了Docker。

工作内容

安装Docker Compose

只需下载并将其放置在 /usr/local/bin/ 目录下。

登$ sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
[sudo] password for user:
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   633  100   633    0     0   2035      0 --:--:-- --:--:-- --:--:--  2035
100 8648k  100 8648k    0     0  5181k      0  0:00:01  0:00:01 --:--:-- 8009k
$ docker-compose --version
docker-compose version 1.16.1, build 6d1ac21

准备并运行Docker Compose的配置文件。

根据解释,准备docker-compose.yml文件。
关键点似乎是创建具有卷挂载功能的实例用于数据库。以下是快速入门文件的复制粘贴结果。

version: '3'

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: somewordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress

   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:

启动

$ docker-compose up -d

在一切都处理妥当的情况下,当我在浏览器中打开http://localhost:8000时,WordPress正常运行。这真是令人高兴。我并没有进行任何拉取操作。

$ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                   NAMES
fbd36b54cdaf   wordpress:latest   "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes   0.0.0.0:8000->80/tcp, :::8000->80/tcp   mywordpress_wordpress_1
2ba8c5ed60f0   mysql:5.7          "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes   3306/tcp, 33060/tcp                     mywordpress_db_1

最后

在这里只是按照快速入门的操作进行了一下,但如果有时间的话,我想做到将其部署到云端。此外,快速入门还包括了Django等内容,所以我应该去做那部分。

(2021年5月5日)