使用 Docker 快速搭建 WordPress 站点
之前有写过用Docker来建立个WordPress站点(传送门),现在看来,由于之前没有用Docker Compose编排多个容器,那篇文章的搭建过程,显得略微繁琐。
这里使用工具Docker Compose快速部署WordPress站点,硬件环境为各种云主机、云服务器、独立服务器、VPS(OpenVZ除外)。
安装 Docker
有个一键脚本:
curl -sSL https://get.docker.com/ | sh
安装 Docker Compose
curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
上面代码第一行中,链接中1.15.0
是Docker Compose的版本号,可以在这个链接找到并更换需要安装的版本。
docker-compose.yml 主模板文件
这一段东西对于新手来讲很多,忽略这一段也可以,我会在下面弄个简单的Shell脚本,一键执行就可以了。
一般新建立个目录(例如mywp
),然后目录里编写docker-compose.yml
文件,下面贴一个配置:
version: "2"
services:
db:
image: mariadb
volumes:
- ./data/db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ChangeMeIfYouWant
restart: always
wp:
image: wordpress:php7.1
volumes:
- ./data/web:/var/www/html
ports:
- "80:80"
links:
- db:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
restart: always
version
,版本,1
很古老了,目前一般都选择2
services
,服务,上面配置创建了db
、wp
2个服务image
,db
和wp
都有各自依赖的镜像,镜像可以从远程拉取,也可以指定Dockerfile
目录本地创建,具体写法这里不细说volumes
,类似与docker run
命令中的-v
,挂载文件或目录ports
,开放端口links
,链接容器;同时已经指定了容器间的依赖关系,会先启动链接的容器,随后启动自身environment
,设置变量restart: always
,常驻后台
volumes
挂载了几个文件夹,所以在本地mywp
文件夹中,新建mywp/data/db-data
、mywp/data/web
。
直接拷贝上面内容,然后在docker-compose.yml
同级目录中运行:
docker-compose up -d
Docker Compose会自动拉取或构建需要镜像,然后启动。然后浏览器中打开IP地址或解析到该IP的域名,就能看到WordPress的安装界面。
一键部署 WordPress 的脚本
在Ubuntu 16.04 64bit中,海外服务器(国内有些地方下载不了GitHub中的文件)中执行成功,root
账户登陆到服务器或VPS,分别执行下面3行即可:
curl -o Docker4WP.sh https://onebox.site/usr/uploads/2017/08/1374385195.txt
chmod +x Docker4WP.sh
./Docker4WP.sh
然后浏览器中打开该服务器或VPS的IP,或者解析到该IP的域名,出现WordPress的安装界面:
Docker4WP.sh 文件内容
Docker4WP.txt,或Docker4WP.sh,文件内容如下:
#!/bin/bash
## 安装 Docker
curl -sSL https://get.docker.com/ | sh
## 安装 Docker Compose
curl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
## 创建所需目录
cd ~
mkdir mywp && cd mywp
mkdir -p ./data/{db-data,web}
## 写入文件
touch docker-compose.yml
cat > docker-compose.yml <<EOL
version: "2"
services:
db:
image: mariadb
volumes:
- ./data/db-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ChangeMeIfYouWant
restart: always
wp:
image: wordpress:php7.1
volumes:
- ./data/web:/var/www/html
ports:
- "80:80"
links:
- db:mysql
environment:
WORDPRESS_DB_PASSWORD: ChangeMeIfYouWant
restart: always
EOL
## 启动 Docker Compose
docker-compose up -d
上面文件内容可以拷贝,保存为sh
文件,赋予权限chmod +x 文件
,然后运行就好。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。