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

 

 

 

 

 

 

posted @ 2019-05-21 21:15  阿拉米苏  阅读(683)  评论(0编辑  收藏  举报