使用 docker-compose 编排 lnmp(dockerfile) 完成 wordpress

一、使用 docker-compose 编排 lnmp(dockerfile) 完成 wordpress

环境准备

##修改主机名
hostnamectl set-hostname lyh
bash
[root@lyh ~]###关闭防火墙及核心防护
systemctl stop firewalld     ##关闭核心防护
setenforce 0                 ##关闭核心防护##安装Docker-20版本
yum install -y yum-utils device-mapper-persistent-data lvm2           ##下载依赖环境
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo                          ##设置阿里云镜像源
yum install -y docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io       ##安装docker-20版本systemctl start docker.service    ##开启docker服务
systemctl enable docker.service   ##开启docker开机自启##下载centos:7镜像
docker pull centos:7 docker images

1.1、创建相关的文件夹

mkdir /opt/compose_lnmp/nginx -p
mkdir /opt/compose_lnmp/php -p
mkdir /opt/compose_lnmp/mysql -p
ls /opt/compose_lnmp/
mysql  nginx  php

1.2、docker-compose编排nginx

1.2.1在nginx下创建Dockerfile文件

vim Dockerfile    ##编写Dockerfile文件FROM centos:7
MAINTAINER this is nginx image <lyh>
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make && useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make -j4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
ADD nginx.conf /usr/local/nginx/conf/
#ADD wordpress-4.9.4-zh_CN.tar.gz /usr/local/nginx/html/
RUN chmod 777 -R /usr/local/nginx/html/
EXPOSE 80
EXPOSE 443
ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ]

1.2.2修改nginx.conf的配置文件

[root@lyh nginx]#ls
Dockerfile
[root@lyh nginx]#rz -E
rz waiting to receive.
[root@lyh nginx]#ls
Dockerfile  nginx.conf
[root@lyh nginx]#vim nginx.conf

1.2.3上传相关压缩包

[root@lyh nginx]#ls
Dockerfile  nginx.conf##上传相关压缩包
[root@lyh nginx]#ls
Dockerfile  nginx-1.12.0.tar.gz  nginx.conf  wordpress-4.9.4-zh_CN.tar.gz

1.2.4创建html目录

将wordpress-4.9.4-zh_CN.tar.gz压缩包解压到 html文件夹内

[root@lyh nginx]#ls
Dockerfile  nginx-1.12.0.tar.gz  nginx.conf  wordpress-4.9.4-zh_CN.tar.gz
[root@lyh nginx]#mkdir html
[root@lyh nginx]#cd html/
[root@lyh html]#ls
[root@lyh html]#tar xf ../wordpress-4.9.4-zh_CN.tar.gz -C /opt/compose_lnmp/nginx/html/
[root@lyh html]#ls
wordpress
[root@lyh html]#cd wordpress/
[root@lyh wordpress]#ls
index.php    wp-activate.php     wp-comments-post.php  wp-cron.php        wp-load.php   wp-settings.php   xmlrpc.php
license.txt  wp-admin            wp-config-sample.php  wp-includes        wp-login.php  wp-signup.php
readme.html  wp-blog-header.php  wp-content            wp-links-opml.php  wp-mail.php   wp-trackback.php
[root@lyh wordpress]#ls /opt/compose_lnmp/nginx/
Dockerfile  html  nginx-1.12.0.tar.gz  nginx.conf  wordpress-4.9.4-zh_CN.tar.gz

1.3、docker-compose编排mysql

1.3.1准备压缩包

[root@lyh html]#pwd
/opt/compose_lnmp/nginx/html
[root@lyh html]#cd /opt/compose_lnmp/mysql/
[root@lyh mysql]#ls##上传相关文件及压缩包
mysql-boost-5.7.20.tar.gz

1.3.2编写Dockerfile文件

#vim DockerfileFROM centos:7
MAINTAINER this is mysql image <lyh1>
RUN yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make
ADD mysql-boost-5.7.20.tar.gz /usr/local/src/
WORKDIR /usr/local/src/mysql-5.7.20/
RUN cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1 && make && make install
ADD my.cnf /etc/
ENV PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
RUN useradd -M -s /sbin/nologin  mysql
RUN chown mysql:mysql /etc/my.cnf
RUN chown -R mysql:mysql /usr/local/mysql/
RUN /usr/local/mysql/bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
EXPOSE 3306
CMD ["/usr/local/mysql/bin/mysqld"]

1.3.3编写my.cnf文件

vim my.cnf[client]
port = 3306
socket=/usr/local/mysql/mysql.sock[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

1.4、docker-compose编排php

1.4.1准备php相关配置文件及压缩包

##上传相关压缩包及配置文件
[root@lyh php]#ls
php-7.1.10.tar.bz2  php-fpm.conf  php.ini  www.conf

1.4.2编写Dockerfile文件

[root@docker php]# vim Dockerfile FROM centos:7
MAINTAINER this is php image <lnmp>
RUN yum install -y gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel \
gcc gcc-c++ make pcre-devel;useradd -M -s /sbin/nologin nginx
ADD php-7.1.10.tar.bz2 /usr/local/src/
WORKDIR /usr/local/src/php-7.1.10
RUN ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip && make -j 4 && make install
ENV PATH /usr/local/php/bin:/usr/local/php/sbin:$PATH
ADD php.ini     /usr/local/php/lib/
ADD php-fpm.conf /usr/local/php/etc/
ADD www.conf /usr/local/php/etc/php-fpm.d/
EXPOSE 9000
CMD /usr/local/php/sbin/php-fpm -F

1.4.3修改php相关配置文件

1.4.3.1修改php.ini

该配置文件模板位于安装目录的php-7.1.10/php.ini-development位置

[root@lyh php]# vim php.ini#939行,取消注释,修改
date.timezone = Asia/Shanghai
#1170行,修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
[root@lyh php]# egrep -v "^;" php.ini | egrep -v "^$"

1.4.3.2修改php-fpm.conf

该配置文件模板位于/usr/local/php/etc/php-fpm.conf.default

[root@lyh php]# vim php-fpm.conf #17行,删除注释符号“;”
pid = run/php-fpm.pid[root@lyh php]# egrep -v "^;" php-fpm.conf | egrep -v "^$"

1.4.3.3修改www.conf

该配置文件模板位于usr/local/php/etc/php-fpm.d/www.conf.default

[root@lyh php]# vim www.conf #23、24行,修改用户和组
user = nginx
group = nginx
#36行,修改监听IP和端口为容器IP:9000端口
listen = 172.19.0.30:9000
[root@lyh php]# egrep -v "^;" www.conf | egrep -v "^$"

1.5、安装docker-compose

1.5.1下载或上传docker-compose

[root@lyh opt]#pwd
/opt
[root@lyh opt]#ls
compose_lnmp  containerd  rh
[root@lyh opt]#rz -E          ##上传Docker-compose文件
rz waiting to receive.
[root@lyh opt]#ls
compose_lnmp  containerd  docker-compose  rh

1.5.2给docker-compose添加权限

[root@lyh opt]#ls
compose_lnmp  containerd  docker-compose  rh
[root@lyh opt]#chmod +x docker-compose 
[root@lyh opt]#ls
compose_lnmp  containerd  docker-compose  rh

1.5.3将docker-compose移动到/usr/local/bin路径下

[root@lyh opt]#ls
compose_lnmp  containerd  docker-compose  rh
[root@lyh opt]#mv docker-compose /usr/local/bin/
[root@lyh opt]#ls
compose_lnmp  containerd  rh
[root@lyh opt]#ls /usr/local/bin/
docker-compose

1.5.4查看docker-compose的版本

[root@lyh opt]#ls /usr/local/bin/
docker-compose
[root@lyh opt]#docker-compose --version
docker-compose version 1.21.1, build 5a3f1a3

1.6、编写docker-compose.yml文件

如果粘贴,vim编辑器请输入  :set paste

version: '3'
services:nginx:container_name: nginx     #指定容器的名称为nginx hostname: nginx           #容器的主机名为nginxbuild:                    #构建上下文和Dockerfile的位置context: /opt/compose_lnmp/nginx/dockerfile: Dockerfileports:- 80:80- 443:443 #将宿主机的80端口映射到容器的80端口,将宿主机的443端口映射到容器的443端口#设置数据卷挂载volumes:- /opt/compose_lnmp/nginx/html:/usr/local/nginx/htmlnetworks:lnmp:ipv4_address: 172.18.0.10mysql:container_name: mysqlbuild:context: /opt/compose_lnmp/mysqldockerfile: Dockerfileports:- 3306:3306networks:lnmp:ipv4_address: 172.18.0.22
volumes:- db-data:/usr/local/mysqlprivileged: truephp:container_name: phpbuild:context: /opt/compose_lnmp/phpdockerfile: Dockerfileports:- 9000:9000networks:lnmp:ipv4_address: 172.18.0.33volumes:- db-data:/usr/local/mysql- ./nginx/html:/usr/local/nginx/htmldepends_on:- nginx- mysqlnetworks:lnmp:driver: bridgeipam:config:- subnet: 172.18.0.0/16volumes:db-data:

1.7、启动服务

##在当前路径下运行下行命令
docker-compose -f docker-compose.yml up -d 

1.7.1报错

ittp://mirrors.ustc.edu.cn/centos/7.9.2009/os/x86 64/repodata/repomd.xml: [Errno 14l curl#6"Could not resolve host: mirrors,ustc.edu.cn: Unknown error.rying other mirror.##大概意思就是网络的问题,需要修改DNS以及添加路由

##修改网络及域名
vim /etc/sysconfig/network-scripts/ifcfg-ens33  DNS2=114.114.114.114##添加路由
vim /etc/sysctl.confnet.ipv4.ip_forward=1##退出后,生效路由
sysct -p##然后加载、重启网络及Docker服务systemctl daemon-reload
systemctl restart network
systemctl restart docker.service

1.8、进入容器登录mysql授权

[root@lyh php]#docker exec -it mysql /bin/bash
[root@28af5fe9d022 mysql-5.7.20]# mysql
mysql> mysql> create database wordpress;
Query OK, 1 row affected (0.01 sec)mysql>  grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

1.9、创建一个新的配置文件 wp-config.php

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');/** MySQL数据库用户名 */
define('DB_USER', 'wordpress');/** MySQL数据库密码 */define('DB_PASSWORD', 'Abc123');

1.10、验证结果

##在浏览器输入 192.168.10.100/wordpress/index.php

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/8713.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.控速,红外传感

1.基础知识 2.小车转速代码 int leftX 11; int rightX 12;void carInit() {// put your setup code here, to run once:pinMode(2, OUTPUT); // 配置2口为输出引脚pinMode(3, OUTPUT); // 配置3口为输出引脚//右轮信号方向初始化pinMode(4, OUTPUT); // 配置4口为输出引脚pi…

JavaEE技术之MySql高级-ShardingSphere5(SpringBoot版本:3.0.5)

文章目录 1 ShardingSphere-JDBC读写分离1.1 创建SpringBoot程序1.1.1、创建项目1.1.2、添加依赖1.1.3、创建实体类1.1.4、创建Mapper1.1.5、配置 Spring Boot1.1.6、配置shardingsphere 1.2 测试1.2.1 读写分离测试1.2.2 负载均衡测试1.2.3 事务测试常见错误 2 ShardingSphere…

使用ffmpeg对视频进行转码(支持浏览器播放)

在开发中&#xff0c;算法保存的mp4视频文件通过路径打开该视频发现视频播放不了&#xff0c;需要转码进行播放。使用java代码进行转码。代码如下&#xff0c;inputFilePath是转之前的视频路径&#xff0c;outputFilePath是转之后的视频路径。ffmpeg命令中libx264也可以改为其它…

泉州晋江厦门拉货最便宜的7个方式,建议收藏

众所周知&#xff0c;搬家、拉货的时间长、距离长&#xff0c;运费也比较贵。面对不菲的费用&#xff0c;很多人会比较谨慎&#xff0c;先网上搜搬家攻略&#xff0c;一番对比以后&#xff0c;找到最便宜的运输方式。那怎么运输最便宜最放心呢&#xff1f; 方式一&#xff1a;找…

【iOS】-- 内存五大分区

【iOS】-- 内存五大分区 内存五大分区1.栈区优点&#xff1a; 2.堆区优点&#xff1a; 3.全局区4.常量区5.代码区 验证static、extern、const关键字比较1.static关键字static关键字的作用&#xff1a;全局静态变量局部静态变量 2.extern关键字对内的全局变量对外的全局变量 3.c…

历代著名画家作品赏析-东晋顾恺之

中国历史朝代顺序为&#xff1a;夏朝、商朝、西周、东周、秦朝、西楚、西汉、新朝、玄汉、东汉、三国、曹魏、蜀汉、孙吴、西晋、东晋、十六国、南朝、刘宋、南齐、南梁、南陈、北朝、北魏、东魏、北齐、西魏、北周、隋&#xff0c;唐宋元明清&#xff0c;近代。 一、东晋著名…

ssm+vue的私人健身和教练预约管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频&#xff1a; ssmvue的私人健身和教练预约管理系统(有报告)。Javaee项目&#xff0c;ssm vue前后端分离项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通…

Yolov8实现loopy视频识别

1、前言 loopy是一个非常可爱的动漫角色&#xff08;可爱粉色淀粉肠&#xff09;&#xff0c;闲来无事&#xff0c;打算用yolov8训练一个模型对loopy进行识别。 2、准备工作 先在网络上搜寻很多loopy的图片&#xff0c;然后将图片导入Lablel Studio软件进行标注&#xff0c;并…

三、VGA接口驱动与图像显示动态移动

文章目录 一、参数介绍二、彩条显示2.1 模块系统架构框图2.2 行、场同步波形:2.3 代码三、VGA 图像显示动态移动3.1波形设计3.2代码 一、参数介绍 对于普通的 VGA 显示器&#xff0c;共有 5 个信号&#xff1a;R、G、B 三基色&#xff1b;HS&#xff08;行同步信号&#xff09…

remmina无法连接远程桌面,Remmina无法连接远程桌面的原因与解决办法

在解决Remmina无法连接远程桌面的问题时&#xff0c;我们需要考虑多种可能的原因&#xff0c;并采取相应的解决办法。以下是一些常见的原因及其对应的解决方案&#xff1a; 1、网络问题 原因&#xff1a;不稳定的网络连接或中断可能导致无法建立远程桌面连接。 解决办法&#x…

ICode国际青少年编程竞赛- Python-1级训练场-变量练习

ICode国际青少年编程竞赛- Python-1级训练场-变量练习 1、 a 8 for i in range(8):Dev.step(a)Dev.turnRight()a - 12、 a 3 for i in range(4):Dev.step(a)Dev.turnRight()a a 1 Dev.step(5)3、 a 4 for i in range(4):Dev.step(2)Dev.step(-5)Dev.step(3)Spaceship.…

FreeRTOS学习笔记-基于stm32(6)时间片调度实验

1、什么是时间片调度 在任务优先级相同的时候&#xff0c;CPU会轮流使用相同的时间去执行它&#xff0c;即时间片调度。这个相同的时间就是时间片。而时间片的大小就是SysTick的中断周期&#xff08;SysTick的中断周期可以修改&#xff09;。 比如有三个相同优先级的任务在运行…

练习题(2024/5/8)

1 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;…

Spring后端参数校验——自定义校验方式(validation)

文章目录 开发场景技术名词解释——Spring Validation自定义校验 技术细节小结1.实体参数校验2.自定义校验 完整代码 开发场景 业务场景&#xff1a;新增文章 基本信息 请求路径&#xff1a;/article 请求方式&#xff1a;POST 接口描述&#xff1a;该接口用于新增文章(发布文…

解决:mybatisplus分页查询失效,总是查询到所有数据

目录 问题描述&#xff1a;解决方案&#xff1a;1.配置mybatisplus拦截器PaginationInterceptor2.自行编写SQL语句查询 问题描述&#xff1a; 在前端使用Map<String, Object> params&#xff0c;把page&#xff0c;limit参数作为请求体传送到后端&#xff0c;但是分页查…

Baidu Comate智能编码助手 -----AI编程帮你解放双手

目录 Baidu Comate是什么&#xff1f; Baidu Comate如何安装&#xff1f; 在VSCode上安装Baidu Comate插件 Baidu Comate如何使用&#xff0c;有哪些功能&#xff1f; 1.代码解释 2.代码注释 使用感受 如何体验 Baidu Comate是什么&#xff1f; Baidu Comate智能编码助手…

DSP28335开发教程--CCS问题02:Tnteger conversion resulted in truncation

出现黄色警告&#xff0c; 如何解决&#xff1a; 当你看到“integer conversion resulted in truncation”这样的错误或警告时&#xff0c;它通常意味着在数据转换过程中有数据丢失。具体来说&#xff0c;就是将一个较大的数值&#xff08;可能是浮点数、长整型等&#xff09;…

PHPStudy 下载PHP提示“当前网络不稳定,下载失败”

错误信息 当前网络不稳定&#xff0c;下载失败 获取下载链接失败&#xff0c;请检查网络 假查网络 问题原因 xp.cn服务器的网络不稳定&#xff0c;不是你电脑的网络问题。 解决办法 第一步&#xff1a;下载现成的PHP文件 直接下载现成的文件&#xff0c;放到php目录。 将…

Java17 --- SpringCloud之Gateway

目录 一、Gateway网关创建 1.1、创建微服务子工程9527及配置和依赖 1.1.1、pom依赖 1.1.2、yml配置 1.1.3、主启动类并测试入驻consul 二、实现路由映射 2.1、服务8001新增测试代码 2.2、修改9527服务yml配置文件 2.3、远程调用接口加gateway 2.3.1、新增80服务测…

DEV--C++小游戏(吃星星(0.2))

目录 吃星星&#xff08;0.2&#xff09; 简介 分部代码 头文件&#xff08;增&#xff09; 命名空间变量&#xff08;增&#xff09; 副函数&#xff08;新&#xff0c;增&#xff09; 清屏函数 打印地图函数&#xff08;增&#xff09; 移动函数 选择颜色&#xff…