本文主要讲解如何使用 docker compose 生成一个 WordPress 博客。

博主博客

一、创建目录文件夹

mkdir wordpress
cd wordpress/

二、编写 docker-compose.yaml 文件

2.1 部署 Mysql + Wordpress

version: '3.3'

services:
	mysql:
		image: mysql:5.7
		container_name: mysql
		volumes:
			- db_data:/var/lib/mysql
		ports:
			- "3306:3306"
		restart: always
		environment:
			- MYSQL_ROOT_PASSWORD=somewordpress
			- MYSQL_DATABASE=wordpress
			- MYSQL_USER=wordpress
			- MYSQL_PASSWORD=wordpress
		
	wordpress:
		depends_on:
			- mysql
		image: wordpress:latest
		container_name: wordpress
		volumes:
			- wp_data:/var/www/html
		ports:
			- "8080:80"
		restart: always
		environment:
			- WORDPRESS_DB_HOST=mysql:3306
			- WORDPRESS_DB_USER=wordpress
			- WORDPRESS_DB_PASSWORD=wordpress
			- WORDPRESS_DB_NAME=wordpress
volumes:
	db_data: {}
	wp_data: {}

2.2 单独部署 Wordpress

version: '3.3'

services:
  wordpress:
    image:  wordpress:latest
    container_name: wordpress
    volumes:
            - ./wp_data:/var/www/html
    ports:
            - "8080:80"
    restart: always
    environment:
            WORDPRESS_DB_HOST: 1.2.3.4:3306/wordpress?useUnicode=true&characterEncoding=UTF-8&useSSL=false
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: wordpress
            WORDPRESS_DB_NAME: wordpress
volumes:
  wp_data: {}

三、运行

docker compose up -d

运行成功后, 访问 http://localhost:8080 即可访问 WordPress 的页面。

四、更新

先停止 docker 容器, 使用命令:

docker compose down

再通过 docker compose 尝试拉取最新的代码。

docker compose pull && docker compose up -d

五、清除 Volume

首先停止容器, 如果想把数据(db_data)删除的话, 可以先确认有哪些容器

docker volume ls -q

找到文件夹, 名字一般是 wordpress_db_data

然后使用下面命令进行删除

docker volume rm wordpress_db_data

如果想把所有容器的数据删除, 也可以使用下面命令

docker volume rm  $(docker volume ls  -q)