网站名称和域名有关系/百度推广登录首页官网
文章目录
- 一、安装docker
- 1、切换yum源并更新系统
- 2、卸载旧版docker
- 3、配置Docker的yum库
- 4、安装Docker
- 5、启动和校验Docker
- 6、配置镜像加速
- 6.1、注册阿里云账号
- 6.2、开通镜像服务
- 6.3、配置镜像加速
- 二、部署php+mysql+nginx环境
- 1、准备目录结构
- 2、拉取镜像
- 3、运行容器并从中拷贝出需要的配置文件
- 4、修改配置文件
- 5、启动容器
- 5.1、使用docker compose方式启动(推荐)
- 5.1.1、创建docker-compose.yml文件
- 5.1.2、修改目录权限
- 5.1.3、修改MySQL的root密码
- 5.1.3、停止并删除容器
- 5.2、使用docker run命令启动(不推荐)
- 5.2.1、创建网络
- 5.2.2、启动容器
- 5.2.3、修改MySQL的root密码
- 5.2.4、docker run命令和docker-compose.yml转换——Composerize
- 三、安装WordPress
- 1、创建数据库
- 2、创建MySQL用户并授权
- 3、导入数据库(初始安装不需要这一步)
- 4、解压代码到工程目录
- 5、修改WordPress配置文件
- 6、增加nginx配置文件
- 7、重启nginx容器
- 7.1、方式一:使用docker命令重启
- 7.2、方式二:使用docker compose命令重启
- 8、访问WordPress
- 9、使用Dockerfile构建安装了扩展的php镜像
- 四、安装https证书
- 参考资料
前言:为什么会写这篇文章,一切都是因为手欠。两周前,我准备在服务器上安装docker,就先更新了yum源,并执行了yum update命令,但由于嫌弃yum更新太慢就中断了命令,后来发现命令并没有中断,而是在后台运行,心太急,就不相等,就想重启服务器之后重新安装,然后就执行了reboot命令,然后我的服务器就挂了,无奈只能初始化重装了。之前一直采用的是本地化安装php+nginx+mysql的方式,这次正好重装,就想试试用docker安装这个环境,然后过程中自己也踩了一些坑,所以写一篇文章记录一下,避免过后就忘记了。
写在前面:本文适合有Linux和Docker基础的人,如果不了解基础的Linux命令和基础的docker命令看起来可能会有点困难~~
一、安装docker
1、切换yum源并更新系统
本案例是基于阿里云服务器CentOS 7操作系统为宿主机进行的,所以,第一步为切换宿主机的yum源,依次执行以下命令即可(以下命令需要以root权限执行,如果不是以root身份登录的,需要在每条命令前面加上sudo
)。
# 进入yum源存放路径
cd /etc/yum.repos.d/
# 备份初始的yum源
cp CentOS-Base.repo CentOS-Base.repo.bak
# 下载阿里云的yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清除YUM缓存
yum clean
# 生成新的缓存
yum makecache
# 更新系统
yum update
注意:尤其是最后一条yum update
命令,一般会需要较长时间,中途不要中断!!!
2、卸载旧版docker
如果你的服务器或操作系统中已经安装有docker,需要先进行卸载,命令如下:
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine \docker-selinux
在安装docker这部分,可以参考这个链接进行:安装docker参考资料
3、配置Docker的yum库
配置过程依次执行以下命令:
# 首先需要安装yum工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 安装成功后,执行命令,配置Docker的yum源(更新为阿里云源,否则直连国外,如果你的服务器没有梯子,可能会导致拉取镜像失败):
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum,建立缓存
yum makecache fast
4、安装Docker
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
5、启动和校验Docker
# 启动Docker
systemctl start docker# 停止Docker
systemctl stop docker# 重启
systemctl restart docker# 设置开机自启
systemctl enable docker# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
6、配置镜像加速
这里以阿里云镜像加速为例。
6.1、注册阿里云账号
访问阿里云官网,并注册一个账号。阿里云官网:https://www.aliyun.com/
6.2、开通镜像服务
在阿里云的首页最上方,找到产品-容器-容器镜像服务 ACR,然后
点击后进入控制台:
首次可能需要选择立刻开通,然后进入控制台。
6.3、配置镜像加速
找到镜像工具下的镜像加速器:
页面向下滚动,即可找到配置的文档说明:
具体命令如下(如果不是以root身份登录的,则需要在每个命令前追加sudo
):
# 创建目录
mkdir -p /etc/docker# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF# 重新加载配置
systemctl daemon-reload# 重启Docker
systemctl restart docker
二、部署php+mysql+nginx环境
先说一下大概的思路:先创建默认的容器,并从容器中拷贝出必要的配置文件,然后再根据实际需求将容器中相关的目录和文件映射到宿主机上,并安装对应的扩展,最后使用docker compose实现一键创建。
1、准备目录结构
为了使docker能够按照我们的需求运行,我们需要将docker容器中的一些特殊目录和文件映射到宿主机上,以便我们修改配置、拷贝工程等操作,这里按本人的习惯组织目录结构,具体目录结构如下:
/
|- alidata|- server|- mysql|- conf|- data|- init|- nginx|- cert|- conf.d|- php|- conf|- conf.d|- wwwroot|- logs|- mysql|- nginx|- php
对上述目录结构进行一个简短说明
- 在根目录下创建
/alidata
目录,用于存放docker容器映射出来的各种目录和文件; - 所有的容器运行所需的目录和文件都存放在
/alidata/server
目录下; - 所有的日志文件都存放在
/alidata/logs
目录下; - 所有的工程运行代码都存放在
/alidata/wwwroot
目录下。 /alidata/server/mysql/conf
目录存放mysql配置文件;/alidata/server/mysql/data
目录存放mysql数据文件;/alidata/server/mysql/init
目录存放mysql初始化脚本;/alidata/server/nginx/cert
目录存放https证书;/alidata/server/nginx/conf.d
目录存放nginx单个网站的配置文件(子配置文件);/alidata/server/nginx/
目录存放nginx.conf配置文件;/alidata/server/php/conf
目录存php配置文件;/alidata/server/php/conf/conf.d
目录存php的Sodium 扩展的配置文件。
按照上述目录结构常见文件夹:
mkdir -p /alidata/server/mysql/conf
mkdir -p /alidata/server/mysql/data
mkdir -p /alidata/server/mysql/initmkdir -p /alidata/server/nginx/cert
mkdir -p /alidata/server/nginx/conf.dmkdir -p /alidata/server/php/conf/conf.dmkdir -p /alidata/wwwrootmkdir -p /alidata/logs/mysql
mkdir -p /alidata/logs/nginx
mkdir -p /alidata/logs/php
2、拉取镜像
由于这个环境是准备跑WordPress的,所以php选的7.4.27-fpm版本,而mysql和nginx都是最新版。
# 拉取nginx镜像
docker pull nginx# 拉取mysql镜像
docker pull mysql# 拉取php镜像
docker pull php:7.4.27-fpm# 查看镜像下载情况
docker images
如果能够看到以下显示,则表示拉取成功
3、运行容器并从中拷贝出需要的配置文件
在阅读下面的内容时需要注意拷贝的到底是文件还是文件夹!!!
- 运行PHP容器
# 启动php容器并在后台运行
docker run -d --name php-fpm -p 9000:9000 php:7.4.27-fpm# 查看运行情况
docker ps -a
如果能够看到以下效果代表php容器启动成功
# 通过docker cp命令将php配置文件拷贝到宿主机对应目录,注意,这里我使用的php容器的名称,如果在上面docker run命令指定的名称不是php-fpm需要替换成对应的容器名称
# 将php容器中的/usr/local/etc/php/conf.d/目录下的所有文件,拷贝到宿主机的/alidata/server/php/conf/conf.d/目录下
docker cp php-fpm:/usr/local/etc/php/conf.d/* /alidata/server/php/conf/conf.d
# 将php容器中的/usr/local/etc/php/php.ini-production文件,拷贝到宿主机的/alidata/server/php/conf/目录下,并改名为php.ini
docker cp php-fpm:/usr/local/etc/php/php.ini-production /alidata/server/php/conf/php.ini# 配置文件拷贝完毕,停止并移除php容器
docker stop php-fpm
docker rm php-fpm
- 运行nginx容器
# 启动nginx容器并在后台运行
docker run
相关文章:

使用docker在CentOS 7上安装php+mysql+nginx环境教程并运行WordPress
文章目录 一、安装docker1、切换yum源并更新系统2、卸载旧版docker3、配置Docker的yum库4、安装Docker5、启动和校验Docker6、配置镜像加速6.1、注册阿里云账号6.2、开通镜像服务6.3、配置镜像加速二、部署php+mysql+nginx环境1、准备目录结构2、拉取镜像3、运行容器并从中拷贝…...

vite tsx项目的element plus集成 - 按需引入踩坑
前面我们进行了开源组件的自研,很多组件可直接用现成的开源组件库,并不需要自己重复造轮子,为此我们讲如何在当前vite vitepress tsx技术整合的项目中实现element plus组件的按需引入,同时解决遇到的一些坑。 安装Element Plus…...

Android GreenDao 升级 保留旧表数据
Android GreenDao 升级 保留旧表数据 大川的川关注IP属地: 北京 0.2052019.08.05 11:54:36字数 270阅读 363 瓦力和伊娃 GreenDao升级库版本号之后,以前的旧数据没有了,为啥,因为GreenDao在升级的时候会删除旧库,创建新库&#…...

记一次证书站有趣的SQL注入
一、确定站点 按照以前文章中提到的寻找可进站测试的思路,找到了某证书站的一处站点,通告栏中写明了初始密码的结构,因此我们可通过信息搜集进入该站点(可以考虑去搜集比较老的学号,因为这样的账号要么被冻结,要么就是…...

1_初识pytorch
之前完全没有了解过深度学习和pytorch,但现在因为某些原因不得不学了。不得不感叹,深度学习是真的火啊。纯小白,有错的欢迎指正~ 参考视频:PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆…...

c++typeid()的使用
用处: typeid()函数主要用来获取对应类型或者变量的类型信息,其返回一个std::type_info的对象,这个对象中存放了对应类型的具体信息。 所以typeid()函数就是获取一个type_info的类型,然后可以通过此类型来获取到相应的类型信息。 type_info的…...

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十四)-租云服务器及配环境、docker基本命令
主要介绍了租云服务器和docker配置、基本命令!!! 文章目录 前言 一、云平台 二、租云服务器及安装docker 1.阿里云 2.安装docker 三、docker命令 将当前用户添加到docker用户组 镜像(images) 容器(container) 四、实战…...

实现一个全栈模糊搜索匹配的功能
提供一个全栈实现的方案,包括 Vue 3 前端、Express 后端和 MySQL 数据库的分类模糊搜索功能。让我们逐步来看: 1. 数据库设计 (MySQL) 首先,我们需要一个存储分类的表: CREATE TABLE categories (id INT AUTO_INCREMENT PRIMAR…...

智慧景区导览系统小程序开发
智慧景区导览系统小程序的开发是一个综合性的过程,旨在通过先进的技术手段提升游客的游览体验。以下是开发智慧景区导览系统小程序的主要步骤和关键点: 一、需求分析 市场调研:了解旅游市场的最新趋势和游客的实际需求,包括游客…...

HIVE调优方式及原因
3.HIVE 调优: 需要调优的几个方面: 1.HIVE语句执行不了 2.HIVE查询语句,在集群中执行时,数据无法落地 HIVE执行时,一开始语句检查没有问题,生成了多个JOB, …...

deploy local llm ragflow
CPU > 4 cores RAM > 16 GB Disk > 50 GB Docker > 24.0.0 & Docker Compose > v2.26.1 下载docker: 官方下载方式:https://docs.docker.com/desktop/install/ubuntu/ 其中 DEB package需要手动下载并传输到服务器 国内下载方式&…...

测桃花运(算姻缘)的网站系统源码
简介: 站长安装本源码后只要有人在线测算,就可以获得收入哦。是目前市面上最火的变现利器。 本版本无后台,无数据。本版本为开发的逗号联盟接口版本。直接对接逗号联盟,修改ID就可以直接运营收费赚钱。 安装环境:PH…...

电商平台优惠券
优惠券业务逻辑 优惠券的发放: 来源:优惠券可以由平台统一发放,也可以由商家自行发放。平台优惠券的优惠由平台承担,而店铺优惠券则由商家承担。类型:优惠券可以分为满减优惠券、无门槛优惠券等,根据使用限…...

内衣洗衣机多维度测评对比,了解觉飞、希亦、鲸立哪款内衣洗衣机更好
想要代替手洗内衣物,那么一台内衣专用的小型洗衣机就必不可少啦,不仅能够为我们节约更多的时间以及精力,还能大大提高内衣物的卫生,面对于市面上各种各样的小型内衣洗衣机,相信很多小伙伴都无从下手! 为一…...

数据结构和算法入门
1.了解数据结构和算法 1.1 二分查找 二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分成两半,然后比较目标值与中间元素的大小关系,从而确定应该在左半部分还是右半部分继续查找。这个…...

基于OpenCV C++的网络实时视频流传输——Windows下使用TCP/IP编程原理
1.TCP/IP编程 1.1 概念 IP 是英文 Internet Protocol (网络之间互连的协议)的缩写,也就是为计算机网络相互连接进行通信而设计的协议。任一系统,只要遵守 IP协议就可以与因特网互连互通。 所谓IP地址就是给每个遵循tcp/ip协议连…...

(BS ISO 11898-1:2015)CAN_FD 总线协议详解6- PL(物理层)规定3
目录 6.4 AUI 规范 6.4.1 一般规定 6.4.2 PCS 到 PMA 消息 6.4.2.1 输出消息 6.4.2.2 Bus_off 消息 6.4.2.3 Bus_off 释放消息 6.4.2.4 FD_Transmit 消息 6.4.2.5 FD_Receive 消息 6.4.3 PMA 到 PCS 消息 6.4.3.1 输入消息 如果有不懂的问题可在评论区点赞后留言&…...

docker环境下php安装扩展步骤 以mysqli为例
docker环境下php安装扩展步骤 以mysqli为例 1.0 前言2.0 php 扩展安装原理3.0 docker 环境下 php 扩展安装3.1 docker php 容器扩展安装路径及原理3.2 docker php 扩展脚本安装过程 同步发布在个人笔记[docker环境下php安装扩展步骤 以mysqli为例]( https://blog.lichenrobo.co…...

医院综合绩效核算系统,绩效核算系统源码,采用springboot+avue+MySQL技术开发,可适应医院多种绩效核算方式。
一、系统概述 作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可…...

ROOM数据快速入门
ROOM数据库快速入门 文章目录 ROOM数据库快速入门第一章 准备工作第01节 引入库第02节 布局文件第03节 activity类第04节 效果图 第二章 数据类第01节 实体类(表)第02节 数据访问类(DAO)第03节 数据Service层第04节 RoomDataBase …...

刷新,前面接口的返回值没有到,第二个接口已经请求完了,导致第二个接口返回数据错误
刷新,前面接口的返回值没有到,(前端)第二个接口已经请求完了(入参没有拿前面那个接口返回的数据),导致第二个接口返回数据错误...

pdcj设计
为了实现这些功能需求,我们需要设计多个数据库表来存储相关的数据,并编写相应的Java代码来处理业务逻辑。下面是各个功能需求对应的MySQL表结构以及部分Java代码示例。 商品设置管理 商品分类管理 商品分类表 (product_categories)CREATE TABLE produ…...

【数据结构】哈希表的模拟实现
文章目录 1. 哈希的概念2. 哈希表与哈希函数2.1 哈希冲突2.2 哈希函数2.3 哈希冲突的解决2.3.1 闭散列(线性探测)2.3.2 闭散列的实现2.3.3 开散列(哈希桶)2.3.4 开散列的实现 2.4 开散列与闭散列比较 1. 哈希的概念 在我们之前所接触到的所有的数据结构…...

面试经典算法150题系列-数组/字符串操作之多数元素
序言:今天是第五题啦,前面四题的解法还清楚吗?可以到面试算法题系列150题专栏 进行复习呀。 温故而知新,可以为师矣!加油,未来的技术大牛们。 多数元素 给定一个大小为 n 的数组 nums ,返回其…...

海南云亿商务咨询有限公司领航抖音电商服务
在当下这个瞬息万变的互联网时代,短视频平台尤其是抖音,正以惊人的速度重塑着消费者的购物习惯与商家的营销版图。在这场电商盛宴中,海南云亿商务咨询有限公司凭借其在抖音电商领域的深厚积累与前瞻视野,正逐步成为众多商家转型升…...

C#初级——继承
继承 继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,不需要完全重新编写新的数据成员和成员函数,只需要设计一个新的类,继承了已有的类的成员即可。这个已有的类被称为的基类(父类࿰…...

Github 2024-07-29 开源项目日报 Top10
根据Github Trendings的统计,今日(2024-07-29统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量JavaScript项目3非开发语言项目3Python项目1TypeScript项目1C++项目1Lean项目1HTML项目1免费编程学习平台:freeCodeCamp.org 创建周期:3302 天…...

nginx反向代理和负载均衡+安装jdk-22.0.2
ps -aux|grep nginx //查看进程 nginx 代理 nginx代理是负载均衡的基础 主机:192.168.118.60 这台主机只发布了web服务,没有做代理的任何操作 修改一下index.html中的内容 echo "this is java web server" > /usr/local/nginx/htm…...

软考高级科目怎么选?软考高级含金量排序
软考既是国家职业资格考试,又是职称资格考试,含金量很高。软考的报考不设置任何条件,可以跨级考试,也就是非相关专业的人,也可以直接考高级。因此近些年报考软考、尤其是软考高级的人越来越多。 软考高级证书…...

【机器学习西瓜书学习笔记——模型评估与选择】
机器学习西瓜书学习笔记【第二章】 第二章 模型评估与选择2.1训练误差和测试误差错误率误差 欠拟合和过拟合2.2评估方法留出法交叉验证法自助法 2.3性能度量查准率、查全率与F1查准率查全率F1 P-R曲线ROC与AUCROCAUC 代价敏感错误率与代价曲线代价曲线 2.4比较检验假设检验&…...