docker搭建wordpress
1.使用Docker快速建站
在安装有docker的环境中执行以下命令,我这里使用的是MariaDB,也可以选择使用MySQL。
安装docker请参考: https://www.cnblogs.com/alamisu/p/10645355.html
# 拉取镜像 # docker pull mariadb # docker pull wordpress # 创建mariadb给后续wordpress使用 # docker run -d --privileged=true --name wordpressdb -v /opt/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33006:3306 mariadb
- -p: 端口映射,33306表示宿主,33006表示容器中的端口。 这里表示将宿主机的33306映射给镜像的3306.
- -e: 环境变量, 环境变量和具体的Docker容器制作时设置有关,这里表示设置镜像中mariadb的root 密码时123456
- -v: 指定数据卷,也就是将我们mariadb容器的
/opt/mysql
映射到宿主机的/data/mysql
- --privileged=true: CentOS系统下的安全Selinux禁止了一些安全权限,导致mariadb容器在运行时会因为权限不足而报错,所以需要增加该选项
# 创建wordpress容器 # docker run -d --name mywordpress -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=123456 -p 8888:80 --link wordpressdb:wpdb wordpress
这里我们设置了两个环境变量,"WORDPRESS_DB_HOST"和"WORDPRESS_DB_PASSWORD", 但比较重要的有下面几个
- "WORDPRESS_DB_HOST": 链接的docker的mariadb的IP地址和端口,一般设置成mysql表示用默认的设置
- "WORDPRESS_DB_USER": 以什么用户使用mariadb,默认是root
- "WORDPRESS_DB_PASSWORD" 这设置mariadb的登陆用户密码,由于上一项是默认的root,所以这一项和之前的"MYSQL_ROOT_PASSWORD“要相同。
- "WORDPRESS_DB_NAME": 数据库的表名,不需要修改,用默认的”wordpress"就行
#获取ip地址
# docker inspect wordpressdb
在Networks中找到wordpress容器的IP地址,在浏览器中输入url: xxx.xxx.xxx.xxx/wp-admin/install.php 开始配置wordpress前端
2. 微服务建站(各个应用分开创建各自的docker)
# 拉取nginx/mariadb/php镜像,数据库镜像也可以选择mysql类型
# 在启动容器时可以使用-v <src>:<dest> 挂载自己需要的文件目录,注意挂载后会临时容器原有的目录及文件。 # docker pull nginx php mariadb ubuntu:18.04 #这里可以自行指定自己需要的版本,默认会拉取最新版本 # 创建mariadb 容器,这里可以手动拉其容器,然后进入容器中自定义创建需要的DB_NAME
# 自定义数据库容器
# docker run --name=test-mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 --privileged=true -d mariadb
# docker exec -it test-mysql /bin/bash # 登陆数据库container
# mysql -h localhost -uroot -p #数据密码,登陆数据库自定义配置,可以新增数据库/设置安全项之类。不再详细展示
# docker commit test-mysql mariadb:v1 #退出容器后将修改后的数据库container创建为一个新的镜像。可以在后续中使用
# 使用默认数据库 # docker run -d --privileged=true --name=wordpressdb -v /opt/mysql:/var/lib/mysql -e WORDPRESS_DB_HOST=mysql -e WORDPRESS_DB_PASSWORD=123456 -p 3306:3306 mariadb
# 创建php/wordpress容器
# docker run -it --name=php-wordpress ubuntu:18.04 /bin/bash
# 进入容器后安装php和wordpress
# apt-get update;apt-get install -y php7.2-fpm wordpress
# 退出容器并打包新镜像
# docker commit php-wordpress php-wordpress:v1
# 启动php-wordpress容器
# docker run -d --name=ubuntu-php-wp --link wordpressdb -v /var/www/html:/var/www/html php-wordpress:v1 # /var/www/html是宿主机上需要挂载到容器中的html目录
# docker exec -it ubuntu-php-wp
# 注意配置php的监听ip和端口
# service php7.2-fpm start
# 创建nginx容器 # docker run -d --rm --name=wp-nginx -p 8888:80 --link ubuntu-php-wp nginx /usr/sbin/nginx -g "daemon off;"
# docker exec -it wp-nginx /bin/bash
# 修改nginx配置文件,使得可以处理php文件
server{
listen 80;
location / {
root /usr/share/nginx/html;
index index.html index.htm index.php;
}
location ~ \.php$ {
root /var/www;
fastcgi_pass ubuntu-php-wp:9000; # ubuntu-php-wp是php容器名,也可以是php容器的ip,9000是php默认工作端口
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# service nginx start