【环境配置】使用Docker搭建LAMP环境
这篇文章不是介绍DOCKER是什么,也不是阐述DOCKER的核心:镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者,在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境,这是其一;其二才是我写这篇文章的初心,我觉得很多事情在你没有弄明白之前,从操作入手比一上来就研究各种原理相对来说会更自然,也更容易。
下面我们来讲一下如何在LINUX系统下面搭建LAMP(Linux+Apache+Mysql+Php)环境,我们可以想象一下通过虚拟机构建环境的过程;虚拟机搭建构造类似环境,它首先需要个虚拟机,然后在虚拟机里面通过镜像装一个操作系统,再在操作系统里面配置各种环境和应用程序;那DOCKER也差不多,DOCKER就好比虚拟机+镜像系统,DOCKER里面的镜像文件就好比虚拟机需要配置的各种环境,那镜像文件从哪里来呢?从DOCKER仓库。所以搭建一个LAMP环境,只需要先安装DOCKER,再从仓库去下载一个LAMP镜像文件,下载完之后,在DOCKER里面再去创建一个容器,把镜像放进去就可以了。
下面我们按照步骤一步一步来操作(我这边用的是CentOS7.5):
第一步,安装DOCKER;直接使用命令:
$ yum install docker
此命令的作用就是下载最新的DOCKER,下载完成之后,系统会提示complete;我们可以通过命令查看一下DOCKER的版本(顺便验证一下是否下载成功),只要安装成功,命令执行完就会有对应的DOCKER版本信息:
$ docker -v
第二步,安装好DOCKER之后,我们要把DOCKER启动起来,命令如下:
$ systemctl start docker.service(启动docker)
$ sytemctl enable docker.service/docker(启动开机启动,都执行一下。)
$ systemctl status docker.service(查看docker是否运行)

第三步,下载镜像文件;
如果直接从国外仓库(Docker Hub)去拉取(pull)镜像,直接执行以下命令就可以了:
$ docker pull 镜像名称
但是考虑到直接从国外镜像仓库拉取(pull)载镜像会很慢很慢,所以建议大家从国内供应商提供的镜像源去拉取(pull),具体方法就是配置” /etc/docker/daemon.json”这个文件;通过命令打开daemon.json文件,写入图片中的内容保存就可以了:
$ vi /etc/docker/daemon.json

第四步,拉取(pull)镜像文件之前,大家可以通过以下命令去拉取(pull)哪些star数量靠前的镜像文件,因为star越多,相对来说会更稳定更好用。因为我们要搭建LAMP,所以镜像文件名称制定LAMP就好了。
$ docker search -s 10 lamp(列取前10位的镜像)
第五步,拉取(pull)镜像 “http://docker.io/tutum/lamp(可以根据自己的需求来选取),这一步时间会比较长,做好准备,哈哈,要不你会以为它卡了。
$ docker pull http://docker.io/tutum/lamp
镜像拉取成功之后,我们再通过命令查看一下,是否存在刚才拉取的镜像:
$ docker images
第六步,创建容器,把镜像装起来,命令如下:
$ docker run -d --name=lamp -p 8080:80 -p 3306:3306 http://docker.io/tutum/lamp
run是创建容器的命令
-d 是后台运行容器,并返回容器ID
–name=lamp是指定容器名称为lamp
-p 8080:80 是把宿主机端口8080映射到容器80端口(WEB网站端口)
-P 3306:3306 把宿主机端口3306映射到容器3306端口(数据库端口)
http://docker.io/tutum/lamp 镜像文件名
到这一步容器就已经创建好了,也就是环境已经构建好了,我们用命令查看一下容器:
$ docker container ls
容器存在,此时通过以下命令进入容器:
$ docker exec -it lamp /bin/bash

$ ll(查看容器有哪些文件,是不是感觉就是小型的LINUXOS呢。。。。)

最后一步,访问网站测试一下是否配置成功:
公网IP:8080/index.php

这样一个LAMP环境就搭建好了,是不是非常简单!希望大家按照这个步骤走下来,之前对DOCKER的不了解,能有一种拨开云雾见月明的感觉。
【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】
一、Python编程入门到精通

二、接口自动化项目实战
三、Web自动化项目实战

四、App自动化项目实战
五、一线大厂简历

六、测试开发DevOps体系
七、常用自动化测试工具

八、JMeter性能测试
九、总结(尾部小惊喜)
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!
相关文章:
【环境配置】使用Docker搭建LAMP环境
这篇文章不是介绍DOCKER是什么,也不是阐述DOCKER的核心:镜像/容器和仓库之间的关系,它只是一篇让刚刚接触DOCKER的初学者,在没有完全了解DOCKER是什么之前,也能尽快的在Linux系统下面通过DOCKER来搭建一个LAMP环境,这是其一&#…...
MLIR (Multi-Level Intermediate Representation)
MLIR(Multi-Level Intermediate Representation)是一种多级中间表示的编译器基础架构,旨在提供通用的、可扩展的编译器基础设施。它最初由谷歌开发,并且现在已经成为一个开源项目,受到广泛关注和采用。 MLIR 的设计理…...
VR全景在酒店的发展状况如何?酒店该如何做营销?
现阶段,VR全景技术已经被酒店、民宿、旅游景区、房产楼盘、校园等行业所应用,每天都有不少人通过VR全景展示来了解酒店的设施环境,而酒店也可以借此机会,详细展示自身优势,更大范围吸引顾客。 VR酒店拥有真实、立体的全…...
Winform使用PictureBox控件显示图片并且自适应
一.首先我们只需要在项目文件中的/bin/Debug 下面创建一个文件夹保存你的照片。我这里文件夹名字叫Resources.。如图: 二. 然后我们把我们的照片放入Resources文件夹中即可。如图: 三.在构造器中添加picturebox控件。如图: 四.我们到初始化代…...
HTML中的焦点管理
前言 焦点作为页面交互中的重要一环,涉及到的知识点也比较多,有必要做一个统一的总结。 HTML 中的可获取焦点的元素 具有 href 属性的 HTMLAnchorElement/HTMLAreaElement非禁用态的 HTMLInputElement/HTMLSelectElement/HTMLTextAreaElement/HTMLBut…...
如何区分接口测试和功能测试
接口测试和功能测试的区别: 2023最新Jmeter接口测试从入门到精通(全套项目实战教程) 本文主要分为两个部分: 第一部分:主要从问题出发,引入接口测试的相关内容并与前端测试进行简单对比,总结两者…...
limit分页查询
controller层 ApiOperation("员工分页查询")GetMapping("/page")public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){log.info("员工分页查询,参数为{}",employeePageQueryDTO);PageResult pageResul…...
mysql null 值查询不出来问题
最新遇到mysql null 值查询的问题,当查询这个字段有的为null 有的不为null 该字段查询条件查询为null值得将不显示。 举例 新建表 test_user name和phone得值默认值为null 我们添加一些数据 查询下name 不是张三得数据 select * from test_user where name !张…...
面试之CurrentHashMap的底层原理
首先回答HashMap的底层原理? HashMap是数组链表组成。数字组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的。要将key 存储到(put)HashMap中,key类型实现必须计算hashcode方法,默认这个方法是对象的地址。接…...
Error in onLoad hook: “ReferenceError: plus is not defined“ found in
项目场景: 项目背景如下所示: 使用 HBuilder X 开发 项目, 调整页面时,直接运行到 浏览器查看页面设置效果,导致控制台出现下述报错信息 例如: 问题描述 遇到的问题如下所示: APP 中接收数据…...
ansible自动化运维(二)剧本、角色编写实战
😘作者简介:一名运维工作人员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动动小…...
【Spring框架】@Resource注入以及与@Autowired的区别
目录 使用Resource设置name的方式来重命名注入的对象区别 使用Resource设置name的方式来重命名注入的对象 package com;import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.spr…...
FTP服务器的搭建和配置上传脚本
文章目录 前言一、配置本地用户可上传权限ftp服务器1、用户登录ftp 二、配置FTP上传脚本文件1.脚本代码如下 补充知识 前言 vsftpd(Very Secure FTP Daemon)是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、…...
Ubuntu22.04上部署Lua开发环境
需求背景 想在Ubuntu22.04上搭建一下Lua的开发环境,其实步骤比较简单的,此文章也适用于Ubuntu主机环境搭建Lua,如果想在在Ubuntu内部署一个容器,然后在容器内搭建Lua的环境,可以先参考容器的创建过程 ubuntu22.04上如何创建有pri…...
React的hooks---自定义hooks
通过自定义 Hook,可以将组件逻辑提取到可重用的函数中,在 Hook 特性之前,React 中有两种流行的方式来共享组件之间的状态逻辑:render props和高阶组件,但此类解决方案会导致组件树的层级冗余等问题。而自定义 Hook 的使…...
Asp.Net 使用Log4Net (基础版)
Asp.Net 使用Log4Net (基础版) 1. 创建项目 创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。 2.安装Log4Net包 打开NuGet包管理器控制台,并运行以下命令来安装Log4Net: mathemati…...
STM32 互补PWM 带死区 HAL
1、设置PWM波频率100KHz,占空比50%,死区时间1us 2、 while 循环之前启动PWM HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //启动TIM1_CH1 PWM输出 HAL_TIMEx_PWMN_Start(&htim1,TIM_CHANNEL_1);//启动TIM1_CH1N PWM输出 3、死区计算 DT_time…...
20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片
20230721在WIN10下安装openssl并解密AES-128加密的ts视频切片 2023/7/21 22:58 1、前言: AES-128加密的ts视频切片【第一个】,打开有时间限制的! https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…...
使用Python实现产品图片自动化处理
大家好,在当今的数字化时代,产品图片在电子商务和市场营销中发挥着至关重要的作用。然而,为在线平台准备产品图片可能是一项耗时的任务,本文将分享一个Python脚本,用于自动化产品图片的图像处理工作流程。通过使用Pyth…...
在CSDN学Golang云原生(git)
一,git的工作流程 Golang的Git工作流程与其他语言的Git工作流程类似,通常包括以下步骤: 创建分支:在本地代码库中创建一个新的分支,该分支用于开发新功能或修复错误。编写代码:在创建的分支上进行编码&am…...
3大核心问题解决:B站视频处理全流程指南从下载到去水印的实战方案
3大核心问题解决:B站视频处理全流程指南从下载到去水印的实战方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水…...
ExtractorSharp:突破游戏资源编辑壁垒,打造个性化补丁的全能工具
ExtractorSharp:突破游戏资源编辑壁垒,打造个性化补丁的全能工具 【免费下载链接】ExtractorSharp Game Resources Editor 项目地址: https://gitcode.com/gh_mirrors/ex/ExtractorSharp 你是否曾因找不到合适工具而放弃定制游戏角色外观…...
革命性游戏模组管理平台:XXMI启动器带你告别繁琐配置,一键畅玩所有二次元游戏
革命性游戏模组管理平台:XXMI启动器带你告别繁琐配置,一键畅玩所有二次元游戏 【免费下载链接】XXMI-Launcher Modding platform for GI, HSR, WW and ZZZ 项目地址: https://gitcode.com/gh_mirrors/xx/XXMI-Launcher 你是否曾经为了玩不同的二次…...
3分钟解锁硬件直通黑科技:DiscreteDeviceAssigner让Hyper-V性能飞升
3分钟解锁硬件直通黑科技:DiscreteDeviceAssigner让Hyper-V性能飞升 【免费下载链接】DDA 实现Hyper-V离散设备分配功能的图形界面工具。A GUI Tool For Hyper-Vs Discrete Device Assignment(DDA). 项目地址: https://gitcode.com/gh_mirrors/dd/DDA 在虚拟…...
【Flutter for OpenHarmony 】三方库 infinite_scroll_pagination 鸿蒙化适配实战:列表分页加载全指南
📱 Flutter for OpenHarmony 三方库 infinite_scroll_pagination 鸿蒙化适配实战:列表分页加载全指南 欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net 哈喽大家好呀~我是一名正在学习Flutter跨平台开发…...
OpenClaw技能扩展实战:用Qwen3-32B镜像自动处理Markdown文档
OpenClaw技能扩展实战:用Qwen3-32B镜像自动处理Markdown文档 1. 为什么需要文档自动化处理 作为一个长期与Markdown文档打交道的技术写作者,我经常遇到这样的困扰:当积累了几百篇笔记后,突然发现文件命名不规范需要批量修改&…...
从零上手!用 Python+OpenCV 实现 LBPH 人脸识别,小白也能跑通
一、写在前面:人脸识别到底是什么?你有没有好奇过,手机的人脸解锁、门禁的刷脸开门,到底是怎么认出你的?其实核心逻辑很简单:先 “记住” 人脸:把你的多张照片喂给算法,让它学习你的…...
文墨共鸣部署案例:中小企业低成本部署水墨风语义分析SaaS前端
文墨共鸣部署案例:中小企业低成本部署水墨风语义分析SaaS前端 1. 项目介绍与价值 文墨共鸣是一个将深度学习技术与传统水墨美学完美结合的语义分析系统。这个项目专门为中文文本设计,能够智能分析两段文字之间的语义相似度,判断它们是"…...
GHelper:重构华硕笔记本硬件控制的颠覆式开源方案
GHelper:重构华硕笔记本硬件控制的颠覆式开源方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, …...
Qwen3.5-27B入门必看:Web界面操作+curl调用+错误排查全流程
Qwen3.5-27B入门必看:Web界面操作curl调用错误排查全流程 1. 快速了解Qwen3.5-27B Qwen3.5-27B是Qwen官方发布的视觉多模态理解模型,它不仅能够进行文本对话,还能理解图片内容。这个镜像已经在4张RTX 4090 D 24GB显卡的环境下完成部署&…...



