操作系统全新安装的centos7.8，亦可其他版本。所需软件软件版本centos7.8docker20.10.8mysqllatestnginxlatestphp7.4-fpm操作步骤1.安装docker1.1卸载旧版本dockersudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine1.2安装docker[scode type="share"]设置仓库，安装所需的软件包。yum-utils 提供了 yum-config-manager ，并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2[/scode]sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm21.3使用以下命令来设置稳定的仓库。[scode type="share"]使用官方源[/scode]sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo1.4安装 Docker Engine-Community[scode type="share"]安装最新版本的 Docker Engine-Community 和 containerd，或者转到下一步安装特定版本：[/scode]sudo yum install docker-ce docker-ce-cli containerd.io1.5确认docker版本docker -v1.6开启docker(开机自启)sudo systemctl enable docker sudo systemctl start docker2.创建所需目录/data 所需目录 ├── download 下载目录 ├── mysql 存放数据库备份 ├── nginx nginx配置文件 │ ├── conf 配置文件 │ └── rewrite 伪静态 ├── source 程序源代码 ├── wwwlogs 日志 └── wwwroot 网站文件 3.安装mysql3.1拉取mysql镜像[scode type="green"]这里可以省去docker search，免去搜索步骤[/scode]docker pull mysql:latest3.2 运行mysqldocker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name m_mysql mysql:latestscode type="blue"参数说明：-d 容器后台运行-p 添加主机到容器的端口映射，前面是映射到宿主机的本地端口，后面是容器内需要映射的端口-e 设置环境变量, MYSQL_ROOT_PASSWORD这里设置了mysql的root用户初始密码--name 容器的名字3.2进入容器docker exec -it m_mysql /bin/bash3.3设置mysql允许远程访问$ 进入mysql > mysql -uroot -p123456 $ 选择数据库 > use mysql $ 开启远程连接 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; $ 刷新权限 > FLUSH PRIVILEGES;[scode type="blue"]IDENTIFIED BY '123456'意思为：设置密码为123456[/scode]3.4创建wordpress数据库$ 进入mysql > mysql -uroot -p123456 $ 创建数据库 > create database wordpress; $ 退出 > exit;4.安装php4.1拉取镜像docker pull php:7.4-fpm4.2运行php环境docker run \ -d \ -p 9000:9000 \ -v /data/wwwroot:/usr/share/nginx/html \ --link m_mysql:mysql \ --name m_phpfpm php:7.4-fpm[scode type="blue"]参数说明:-d 让容器在后台运行-p 添加主机到容器的端口映射-v 添加目录映射--name 容器的名字，随便取，但是必须唯一--link link 是在两个contain之间建立一种父子关系，父container中的web，可以得到子container db上的信息。通过link的方式创建容器，我们可以使用被Link容器的别名进行访问，而不是通过IP，解除了对IP的依赖。[/scode]5.安装nginx5.1拉取nginx镜像docker pull nginx:latest5.2运行nginxdocker run -d -p 80:80 --name m_nginx nginx:latest5.3复制nginx配置文件到宿主机docker cp m_nginx:/etc/nginx/nginx.conf /data/nginx docker cp m_nginx:/etc/nginx/conf.d/default.conf /data/nginx/conf5.4停止并删除nginxdocker stop m_nginx && docker rm m_nginx5.5重新运行nginxdocker run -d -p 80:80 --name m_nginx \ -v /data/wwwroot:/usr/share/nginx/html \ -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf:/etc/nginx/conf.d \ -v /data/wwwlogs:/var/log/nginx \ --link m_phpfpm:phpfpm \ nginx5.6编辑nginx的配置文件vi /data/nginx/conf/default.conf5.7在server节点里加入如下内容[scode type="blue"]开启nginx的php功能[/scode]location ~ \.php$ { root /usr/share/nginx/html/default; fastcgi_pass phpfpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }6.拉取wordpress镜像6.1拉取镜像docker pull wordpress:latest6.2运行wordpressdocker run --name m_wordpress -d -p 8080:80 --link m_mysql:db wordpress6.3开启反向代理vi /data/nginx/conf/default.conf加入如下内容[scode type="yellow"]开启反向代理，访问http://ip，会被代理到http://ip:8080[/scode]location /{ proxy_pass http://你的ip:8080/; }6.4停止并删除nginxdocker stop m_nginx && docker rm m_nginx6.5重新运行nginxdocker run -d -p 80:80 --name m_nginx \ -v /data/wwwroot:/usr/share/nginx/html \ -v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /data/nginx/conf:/etc/nginx/conf.d \ -v /data/wwwlogs:/var/log/nginx \ --link m_phpfpm:phpfpm \ nginx6.6安装完成访问自己的ip继续配置wordpress