前言
上一篇文章已经讲了如何使用docker安装wordpress,总的来说方法非常简单,只要一步步按照教程敲下来,就能完全搭建起来,同样他也有很明显的缺点——无法多台服务搭建。 布置一台可能需要30s,但是要求你同时布置n台,那你可能要重复做一天这样的工作不仅无聊也没有营养,所以在这里给大家推荐docker-compose——用于实现Docker容器集群的快速编排。如果您对他非常有兴趣的话,可以去阅读官方文档,这里就不给大家扩展,主要是记录一下我自己遇到那些坑和填坑的艰辛历程。
安装docker
这里就不再重复写了,可以参考上一篇文章ubuntu下使用docker安装wordpress,当您安装好docker后就可以直接回来继续下一步了!
安装docker-compose
当我们安装好docker后我们就可以去安装docker-compose了,这次当然不是使用docker pull就能实现了,我们需要去官网上查看,然后复制那条命令 官网入口:https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
这样显示就说明已经在安装docker-compose 了,接下来让我们验证一下
docker-compose -version
如果您的显示一下内容就说明已经安装成功了!
编写docker-compose脚本
下面就到了docker-compose的精华之处,同时也是最难的地方——编写docker-compose.yml
在我们写脚本之前,我们需要先创建一个文件夹,不管是在root还是自己的某个用户下,这样不仅方便我们自己的管理而且在我们写路径的时候也更容易找到。
mkdir my_wordpress
#文件夹的名字看个人喜好,这里没有硬性的要求
在这里我是先创建了一个用户,之后创建了my_wordpress文件夹
好了,进入正题,我先放上我写的docker-compose.yml
version: '3.2'
services:
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: 123456
volumes:
- type: bind
source: $PWD/conf
target: /etc/mysql/conf.d
- type: bind
source: $PWD/data
target: /var/lib/mysql
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: 123456
volumes:
- type: bind
source: $PWD/themes
target: /var/www/html/wp-content
在这里重点提示:注意格式!注意格式!注意格式!
不能使用tab键,一定要手敲空格,冒号后面没有参数,就千万不能有空格,不然肯定报错!
内容说明依旧是可以参考上一篇文章。
运行docker-compose
当我们编写好脚本以后就可以开始运行了!
我们需要敲如下命令
sudo docker-compose up
如果您使用自己的用户登录的话,输入这条命令需要输入密码,或者您直接切换到root用户下直接使用即可。
这个表示他正在自动安装mysql和wordpress,等他安装好以后就会自动运行起来
因为是第一次运行起来,所以为了方便查看有没有出错,我们直接选择up起来,然后我们登录网站查看一下,没有问题就说名成功了!
之后我们使用ctrl+c,中断连接,然后使用如下命令
docker-compose down
docker-compose up -d
第一条表示停止docker-compose的工作,第二条表示在后台运行docker-compose
这样所有的任务就都完成了!
总结
相比上一种方法ubuntu下使用docker安装wordpress要难上很多,主要是在编写脚本和测试的时候出现很多坑,网上找了很多脚本,包括官网给出的也是依旧出问题,后来按照公司给的范例自己通和网上找到的脚本,反复修改(上面的图都是边写博客边操作的,yml是直接复制粘贴)最终完美跑起来,ubuntu和centos都可以使用,以后自己再有需求时直接过来复制即可哈哈哈,之后可能还会要写一篇关于在部署wordpress时遇到的哪些问题,已经相应的解决办法。