#系统环境准备:1台Centos机器 / 任何RedHat系Linux操作系统都可以
#各位有了Docker的可以直接跳过第一步,到第二步。
目录
3. 开始编写docker-compose.yml文件,并启动容器。
三、安装WordPress,并修改wordpress配置文件
一、安装docker
1.下载依赖安装包
yum install -y yum-utils device-mapper-persistent-data lvm2
2.配置镜像仓库
#国外的地址
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 设置阿里云的Docker镜像仓库
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#这里我们使用阿里云的。
yum-config-manager --add-repo
\https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
3.安装社区版Docker
yum -y install docker-ce
4.配置Docker镜像加速
登录 阿里云 鼠标悬停产品处搜索容器镜像服务
管理控制台
镜像工具
镜像加速器
在自己的Centos机器上执行说明的命令即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://frtqcj69.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
5.验证Docker是否安装成功
#可以进行一下拉取镜像测试
#如果出现network is unreachable的错误的话,需要改dns
[root@doublew_w ~]# cat <<EOF >/etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF
#改完之后再次尝试就OK啦!
二、编写docker-compose.yml
1. 创建工程目录
#创建工作根目录
[root@doublew_w ~]#mkdir lnmp
[root@doublew_w ~]# cd lnmp/
[root@doublew_w lnmp]# pwd
/root/lnmp
#创建虚拟主机(nginx webserver)根目录映射
[root@doublew_w lnmp]# mkdir nginx/{conf.d,html} -p
[root@doublew_w lnmp]# cd nginx/ && ls
conf.d html
2. 复制映射文件到宿主机
[root@doublew_w nginx]# docker run -d -P --rm --name nginx nginx
#复制容器内default.conf文件到宿主机
docker cp nginx:/etc/nginx/conf.d/default.conf conf.d/
[root@doublew_w nginx]# docker stop nginx
#修改default.conf文件的内容
3. 开始编写docker-compose.yml文件,并启动容器。
[root@doublew_w lnmp]# cat docker-compose.yml
version: '3'
services:
nginx:
image: "nginx"
container_name: "nginx"
restart: "always"
networks:
lnmpnet:
ipv4_address: 1.1.1.2
volumes:
- /root/lnmp/nginx/html:/usr/share/nginx/html
- /root/lnmp/nginx/conf.d:/etc/nginx/conf.d
ports:
- "80:80"
mysql:
image: "mysql"
container_name: "mysql"
restart: "always"
networks:
lnmpnet:
ipv4_address: 1.1.1.3
environment:
MYSQL_ROOT_PASSWORD: 123
ports:
- "3306:3306"
php:
image: "php:8.1-fpm"
container_name: "php"
restart: "always"
networks:
lnmpnet:
ipv4_address: 1.1.1.4
volumes:
- /root/lnmp/nginx/html:/usr/share/nginx/html
ports:
- "9000:9000"
networks:
lnmpnet:
ipam:
config:
- subnet: 1.1.1.0/24
[root@doublew_w lnmp]#
4.启动容器
#这里启动要成功的,否则无法进行下一步
[root@doublew_w nginx]# docker compose up -d
#查看容器状态,必须为up。
三、安装WordPress,并修改wordpress配置文件
[root@doublew_w nginx]# wget https://cn.wordpress.org/latest-zh_CN.zip
[root@doublew_w nginx]# unzip latest-zh_CN.zip
[root@doublew_w nginx]# cd wordpress/
cp wp-config-sample.php wp-config.php
vim wp-config.php
#这里直接使用自带的mysql数据库了,这是在生产环境不建议的,这里只是为了重启容器的时候不需要创建新的数据库而使用的投机取巧方法。
#地址不记得可以通过以下命令查看:
docker inspect mysql | grep IPAddress
#复制所有Wordpress文件到网站目录
\cp -ar wordpress/* /root/lnmp/nginx/html/
四、访问Wordpress
#出现这样则在php容器中运行:安装mysqli拓展
docker exec -it php bash
docker-php-ext-install mysqli
#安装后退出php容器,重启compose。
[root@doublew_w lnmp]# docker compose restart
#再次访问即可成功进入到WordPress!!
#至此已经成功完成了。
四、注意事项
docker搭建lnmp注意事项:
Nginx部分:
-
准备nginx的虚拟主机目录/usr/share/nginx/html映射(网站文件的准备)
-
准备/etc/nginx/conf.d/default.conf配置文件的映射(这里需要写好让php处理location匹配index.php的请求)
Mysql部分:
-
注意环境变量的添加:MYSQL_ROOT_PASSWORD字段
php部分:
-
准备/etc/php/8.1/fpm/pool.d/www.conf配置文件的映射(开启PHP监听的端口,一般不用做映射,自动开启了。)
-
注意!/usr/share/nginx/html这个目录也需要进行映射,因为在php容器里没有这个虚拟主机目录。
-
我们假如删除了php容器,拓展也是需要重新安装的哦。