当前位置: 首页 > news >正文

【环境配置】使用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("员工分页查询&#xff0c;参数为{}",employeePageQueryDTO);PageResult pageResul…...

mysql null 值查询不出来问题

最新遇到mysql null 值查询的问题&#xff0c;当查询这个字段有的为null 有的不为null 该字段查询条件查询为null值得将不显示。 举例 新建表 test_user name和phone得值默认值为null 我们添加一些数据 查询下name 不是张三得数据 select * from test_user where name !张…...

面试之CurrentHashMap的底层原理

首先回答HashMap的底层原理? HashMap是数组链表组成。数字组是HashMap的主体&#xff0c;链表则是主要为了解决哈希冲突而存在的。要将key 存储到&#xff08;put&#xff09;HashMap中&#xff0c;key类型实现必须计算hashcode方法&#xff0c;默认这个方法是对象的地址。接…...

Error in onLoad hook: “ReferenceError: plus is not defined“ found in

项目场景&#xff1a; 项目背景如下所示&#xff1a; 使用 HBuilder X 开发 项目&#xff0c; 调整页面时&#xff0c;直接运行到 浏览器查看页面设置效果&#xff0c;导致控制台出现下述报错信息 例如&#xff1a; 问题描述 遇到的问题如下所示&#xff1a; APP 中接收数据…...

ansible自动化运维(二)剧本、角色编写实战

&#x1f618;作者简介&#xff1a;一名运维工作人员。 &#x1f44a;宣言&#xff1a;人生就是B&#xff08;birth&#xff09;和D&#xff08;death&#xff09;之间的C&#xff08;choise&#xff09;&#xff0c;做好每一个选择。 &#x1f64f;创作不易&#xff0c;动动小…...

【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&#xff08;Very Secure FTP Daemon&#xff09;是一个在 Linux/Unix 系统上运行的一款开源免费的 FTP 服务器软件。vsftpd 支持支持 匿名用户、…...

Ubuntu22.04上部署Lua开发环境

需求背景 想在Ubuntu22.04上搭建一下Lua的开发环境&#xff0c;其实步骤比较简单的&#xff0c;此文章也适用于Ubuntu主机环境搭建Lua,如果想在在Ubuntu内部署一个容器&#xff0c;然后在容器内搭建Lua的环境&#xff0c;可以先参考容器的创建过程 ubuntu22.04上如何创建有pri…...

React的hooks---自定义hooks

通过自定义 Hook&#xff0c;可以将组件逻辑提取到可重用的函数中&#xff0c;在 Hook 特性之前&#xff0c;React 中有两种流行的方式来共享组件之间的状态逻辑&#xff1a;render props和高阶组件&#xff0c;但此类解决方案会导致组件树的层级冗余等问题。而自定义 Hook 的使…...

Asp.Net 使用Log4Net (基础版)

Asp.Net 使用Log4Net (基础版) 1. 创建项目 创建ASP.NET Web Forms项目 在Visual Studio中创建一个新的ASP.NET Web Forms项目。命名为"Log4NetDemo"。 2.安装Log4Net包 打开NuGet包管理器控制台&#xff0c;并运行以下命令来安装Log4Net&#xff1a; mathemati…...

STM32 互补PWM 带死区 HAL

1、设置PWM波频率100KHz&#xff0c;占空比50%&#xff0c;死区时间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、前言&#xff1a; AES-128加密的ts视频切片【第一个】&#xff0c;打开有时间限制的&#xff01; https://app1ce7glfm1187.h5.xiaoeknow.com/v2/course/alive/l_64af6130e4b03e4b54da1681?typ…...

使用Python实现产品图片自动化处理

大家好&#xff0c;在当今的数字化时代&#xff0c;产品图片在电子商务和市场营销中发挥着至关重要的作用。然而&#xff0c;为在线平台准备产品图片可能是一项耗时的任务&#xff0c;本文将分享一个Python脚本&#xff0c;用于自动化产品图片的图像处理工作流程。通过使用Pyth…...

在CSDN学Golang云原生(git)

一&#xff0c;git的工作流程 Golang的Git工作流程与其他语言的Git工作流程类似&#xff0c;通常包括以下步骤&#xff1a; 创建分支&#xff1a;在本地代码库中创建一个新的分支&#xff0c;该分支用于开发新功能或修复错误。编写代码&#xff1a;在创建的分支上进行编码&am…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

AtCoder 第409​场初级竞赛 A~E题解

A Conflict 【题目链接】 原题链接&#xff1a;A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串&#xff0c;只有在同时为 o 时输出 Yes 并结束程序&#xff0c;否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...

typeof运算符 +unll和undefined的区别

typeof运算符 JavaScript 有三种方法&#xff0c;可以确定一个值到底是什么类型。而我们 现在需要接触到的就是typeof 数值返回number 1 typeof 123 // "number" 字符串返回string 1 typeof 123 // "string" 布尔值返回boolean 1 typeof fal…...