前言
LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
本文通过在单Pod中创建Nginx与PHP容器,并连接到MySQL一主多从集群。
准备镜像
Nginx镜像
Nginx镜像制作流程:
官方centos -> 自定义centos -> base-nginx -> wordpress-nginx
官方centos:下载后上传至本地镜像。
docker pull centos:7.9.2009
docker tag centos:7.9.2009 easzlab.io.local:5000/myhub/centos:7.9.2009
docker push easzlab.io.local:5000/myhub/centos:7.9.2009
自定义centos:添加网络组件,日志收集等功能。
# centos-base:7.9.2009
FROM easzlab.io.local:5000/myhub/centos:7.9.2009
ADD filebeat-7.12.1-x86_64.rpm /tmp
RUN yum install -y /tmp/filebeat-7.12.1-x86_64.rpm vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop && rm -rf /etc/localtime /tmp/filebeat-7.12.1-x86_64.rpm && ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && useradd nginx -u 2088
nerdctl build -t easzlab.io.local:5000/myhub/centos-base:7.9.2009 .
nerdctl push --insecure-registry easzlab.io.local:5000/myhub/centos-base:7.9.2009
需要下载很多安装包,这次构建大概10分钟。镜像大小从200MB增加到700MB。
base-nginx:添加安装nginx-1.22,并创建基础目录。
# nginx-base-wordpress:v1.22.0
FROM easzlab.io.local:5000/myhub/centos-base:7.9.2009
RUN yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.22.0 && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin/nginx &&rm -rf /usr/local/src/nginx-1.22.0.tar.gz
nerdctl build -t easzlab.io.local:5000/myhub/nginx-base-wordpress:v1.22.0 .
nerdctl push --insecure-registry easzlab.io.local:5000/myhub/nginx-base-wordpress:v1.22.0
wordpress