本文记录使用多个Docker容器安装WordPress的步骤;Wordpress、MariaDB分别使用单独的容器,在主机上安装使用Nginx做为Wordpree容器的反向代理。Wordpree容器中的Web Server是Apache。
1、安装Docker
Ubuntu 16.04 安装 docker:http://www.linuxdiyf.com/linux/20926.html
2、安装MariaDB容器
下载MariaDB镜像:
$ docker pull mariadb
创建WordPress数据目录:
$ sudo mkdir /var/wordpress
$ sudo mkdir /var/wordpress/database # 存放数据库数据文件
$ sudo mkdir /var/wordpress/html # 存放Wordpress代码目录
创建MariaDB容器:
$ docker run -e MYSQL_ROOT_PASSWORD=aqwe123 -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=wpuser@ -e MYSQL_DATABASE=wordpress_db -v /var/wordpress/database:/var/lib/mysql --name wordpressdb -d mariadb
参数解释:mysql root用户密码:aqwe123;创建新用户wpuser,密码:wpuser@;创建数据库wordpress_db,-v链接数据库目录。
查看wordpressdb容器的IP地址:
$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' wordpressdb
登录MySQL:
$ mysql -u wpuser -h 172.17.0.2 -p
MariaDB容器安装完成。
3、安装Wordpress容器
$ docker pull wordpress:latest
创建容器:
$ docker run -e WORDPRESS_DB_USER=wpuser -e WORDPRESS_DB_PASSWORD=wpuser@ -e WORDPRESS_DB_NAME=wordpress_db -p 8081:80 -v /root/wordpress/html:/var/www/html --link wordpressdb:mysql --name wpcontainer -d wordpress
注意替换数据库连接信息;-p参数把主机的8081端口映射到容器的80端口。
测试:
4、安装配置Nginx做为wpcontainer容器的反向代理
安装Nginx:
$ sudo apt-get install nginx
创建Virtual Host配置文件:
$ sudo vim /etc/nginx/sites-available/wordpress
内容如下:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://localhost:8081;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
注意替换域名或IP。
使配置生效:
$ sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
$ sudo rm -f /etc/nginx/sites-enabled/default
$ sudo systemctl restart nginx
Nginx后续配置:添加SSL证书,开启https支持。
5、完成WordPress的安装
使用浏览器访问:http://your_domain_or_IP
完成安装: