docker 学习-- 04 实践搭建 1(宝塔)

docker 学习-- 04 实践 1(宝塔)


docker 学习-- 01 基础知识

docker 学习-- 02 常用命令

docker 学习-- 03 环境安装

docker 学习-- 04 实践 1(宝塔)

docker 学习-- 04 实践 2 (lnpmr环境)


通过上面的学习, 已经可以搭建简单的案例, 接着我会搭建几套 php 和前端常用的环境;
欢迎大家一起 探讨学习


文章目录

  • docker 学习-- 04 实践 1(宝塔)
    • @[TOC](文章目录)
  • 1. 搭建本地宝塔
    • 1.1 pch18/baota
    • 1.2 修改运行命令
    • 1.3. 登录宝塔修改配置
    • 1.4 新建本地项目

提示:以下是本篇文章正文内容,下面案例可供参考

1. 搭建本地宝塔

1.1 pch18/baota

地址: https://hub.docker.com/r/pch18/baota

版本1. pch18/baota或pch18/baota:latest等同pch18/baota:lnmp

版本2. pch18/baota:lnmp为最新版本的官方纯净安装的基础上安装nginx,mysql,php

版本3. pch18/baota:lnp为官方版本纯净安装的基础上安装nginx,php(不内置mysql,用于外置数据库的环境)

版本4. pch18/baota:lamp 为官方版本纯净安装的基础上安装

版本5. apache,php pch18/baota:lap 为官方版本纯净安装的基础上安装apache,php(不内置mysql,用于外置数据库的环境)

版本6 pch18/baota:clear 为官方版本纯净安装, 不默认安装nginx,mysql,php等程序

说明 看自己的需求 本人建议本地项目 或者测试 外包项目 可以使用 如果是比较大的项目比较完善的项目 尽量不要使用宝塔
这里 本人演示使用的是 版本3. pch18/baota:lnp
好处 :
1.这样数据就会持久化 我会把代码文件通过挂载放到容器中 数据库也在本地
2.测试完可以通过本地文件 git 直接提交 方便和其他人配合
3.不容易丢失数据,想象一下容器在本地挂掉或者吴删除,辛辛苦苦设计的sql 都没了 也是很崩溃的


在这里插入图片描述

1.2 修改运行命令

我们执行的时候需要做点改动
1.这个是我修改后前的 这里是Linux 情况 这里是挂载 到本地 wwwroot目录下 我的是win10系统就修改成 D:/docker-compose-data/wwwroot 这样了 端口80端口被我已经占用 也修改了一下 如果还需要其他接口 也可以 -p 本地端口:容器端口 去添加

docker run -tid --name baota -p 80:80 -p 443:443 -p 8888:8888 -p 888:888 --privileged=true --shm-size=1g --restart always -v ~/wwwroot:/www/wwwroot pch18/baota:lnp

2.这个是我修改后的

docker run -tid --name baota -p 81:80 -p 442:443 -p 8888:8888 -p 888:888 --privileged=true --shm-size=1g --restart always -v D:/docker-compose-data/wwwroot:/www/wwwroot pch18/baota:lnp

Windows(那个小方块)+r 输入cmd

在这里插入图片描述
这样就安装成功了
我们来看一下镜像
在这里插入图片描述
这个是容器 已经自己运行起来了
点击小方块乐意停止
在这里插入图片描述

点击三个点 选择 我们点击 View details 我们可以看到这个的账号密码
在这里插入图片描述

1.3. 登录宝塔修改配置

这样我们的环境就已经 跑起来了 我们进入看看
在这里插入图片描述

这里有点翻车 密码发现怎么输入都不正确 只好重置密码

在这里插入图片描述
testpasswd 这是是密码

 cd /www/server/panel && btpython tools.py panel testpasswd

执行完显示的 是登录的账号 username
如果登录失败多次请执行下边的

rm -f /www/server/panel/data/*.login

在这里插入图片描述
再次登录就成功进来了
在这里插入图片描述

1.4 新建本地项目

接着我们去本地新建一个项目

在这里插入图片描述
我是在本地文件夹直接通过git 拉取文件这里就自动显示在这里了
在这里插入图片描述
接着去配置一下创建一个新项目 这里我是完全把他当做一个项目去配置的
在这里插入图片描述
这里这个项目是用的 tp5.1
在这里插入图片描述
我们通过 IP访问一下

报错 我们没有装Redis 也没有装这个扩展 也没有开启6739 这个端口 这里我们有两个选择

解决办法
第一种咱本地装一个Redis 去链接本地的
第二种我们在容器内去安装Redis 在php上在安装 Redis扩展
第一种直接小皮面板下载一个就可访问过于简单不在演示 咱们来搞第二种

![在这里插入图片描述](https://img-blog.csdnimg.cn/5af6088ea98a498fb5ba4bd72197359d.png
去商店直接 搜索安装
在这里插入图片描述

顺便按个扩展
在这里插入图片描述

刷新发现数据库密码错误
这边自己导入一下库 这里不给大家演示了

其他报错:
1.链接数据库报 SQLSTATE[HY000] [2002] Connection refused
这个是因为链接本地 127.0.0.1 没办法区别是 ipconfig 查一下自己的ip4地址 把链接地址换成 自己的ip地址 其他容器的mysql 可以通过查询容器的ip 去链接
2.链接数据库报 SQLSTATE[HY000] [1130] Host ‘host.docker.internal’ is not allowed to connect to this MySQL server
这个是没有权限 找到mysql 库 user表 root 用户 将3处换成 % 命令行执行 flush privileges; 刷新权限

![在这里插入图片描述](https://img-blog.csdnimg.cn/00e10af3d2754328af8e5e8535d5112a.png
这样就一切正常了
在这里插入图片描述

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

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

相关文章

opencv-答题卡识别判卷

#导入工具包 import numpy as np import argparse import imutils import cv2# 设置参数 ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True,help="path to the input image") args = vars(ap.parse_args())# 正确…

RabbitMQ工作模式-路由模式

官方文档参考:https://www.rabbitmq.com/tutorials/tutorial-four-python.html 使用direct类型的Exchange,发N条消息并使用不同的routingKey,消费者定义队列并将队列routingKey、Exchange绑定。此时使用direct模式Exchange必须要routingKey完成匹配的情况下消息才…

妈妈的爱依然深沉

村里的孩子为了买化肥,跟城里官老爷们借了好多钱。 那几年庄稼转手很快,不是用来吃的,因此借钱成本很高,大概LPR加100bp。 后来村里孩子终于发现庄稼终究只能用来吃,不再热衷买卖化肥。可是官老爷们的金融生意还要继续…

模块化与组件化:开发中的双剑合璧

引言:模块化与组件化的重要性 在现代软件开发中,随着项目规模的增长和技术的复杂性增加,如何有效地组织和管理代码变得越来越重要。模块化与组件化作为两种主要的代码组织方法,为开发者提供了有效的工具,帮助他们创建…

C语言练习7(巩固提升)

C语言练习7 编程题 前言 “芳林新叶催陈叶,流水前波让后波。”改革开放40年来,我们以敢闯敢干的勇气和自我革新的担当,闯出了一条新路、好路,实现了从“赶上时代”到“引领时代”的伟大跨越。今天,我们要不忘初心、牢记…

MyBatisPlus实现多租户功能

前言:多租户是一种软件架构技术,在多用户的环境下,共有同一套系统,并且要注意数据之间的隔离性。 一、SaaS多租户简介 1.1、SaaS多租户 SaaS,是Software-as-a-Service的缩写名称,意思为软件即服务&#x…

手工测试与自动化测试各自的优势和局限性是什么?如何合理地配合使用?

对测试从业者而言,手工测试和自动化测试是伴随测试职业一生的两个名词。今天,我们就来聊聊两者各自的优势和局限性,以及如何合理地配合使用。 手工测试和自动化测试的定义 手工测试(Manual Testing)是一种软件测试方法…

【电子学会真题】青少年软件编程(C语言)等级考试试卷(一级) 2021年9月

试卷下载 pdf 格式下载:https://download.csdn.net/download/SHUTIAN2010/88255543 word 格式下载:https://download.csdn.net/download/SHUTIAN2010/88255558 1.计算乘积 一行两个整数a、b,以空格分隔。(0&#xff1…

CotEditor for mac 4.0.1 中文版(开源文本编辑器)

coteditorformac是一款简单实用的基于Cocoa的macOS纯文本编辑器,coteditormac版本可以用来编辑网页、结构化文本、程序源代码等文本文件,使用起来非常方便。 CotEditor for Mac具有正则表达式搜索和替换、语法高亮、编码等实用功能,而CotEdi…

qt信号与槽

输入账户密码成功则跳转界面 widget.cpp #include "widget.h" //自己的头文件Widget::Widget(QWidget *parent) //构造函数的定义: QWidget(parent) …

WordPress 网站使用 CDN 后获取访客真实 IP

WordPress 往数据库存 IP 的时候似乎用的是 REMOTE_ADDR,这样一来数据库里面的评论信息就全是从各个 CDN 服务器来的 IP。 在 wp-config.php 文件中增加下面代码就可以获取 CDN 后访客的真实 IP。这个函数的核心是用解析后的 HTTP_X_FORWARDED_FOR 替换 REMOTE_ADD…

django自动创建model数据

目前使用的环境:django4.2.3,python3.10 django通过一些第三方库,可以轻易的自动生成一系列的后台数据。 首先先创建一个数据库: 然后,在setting.py中就可以指定我们新创建的数据库了。 DATABASES {default: {ENGI…

ChatGPT 与前端技术实现制作大屏可视化

像这样的综合案例实分析,我们可以提供案例,维度与指标数据,让ChatGPT与AIGC 帮写出完整代码,并进行一个2行2列的布局设置。 数据与指令如下: 商品名称 销量 目标 完成率 可乐 479 600 79.83% 雪碧 324 600 54.00% 红茶 379 600 63.…

【C语言】循环语句详解

✨个人主页: Anmia.🎉所属专栏: C Language 🎃操作环境: Visual Studio 2019 版本 目录 1.什么是循环结构? 2.while循环 while流程图 while语句中的break和continue break continue 3.for循环 for流…

头歌MYSQL——课后作业1 数据库和数据表的建立、修改和删除

第1关:建立数据库 任务描述 本关任务:建立数据库 为了完成本关任务,你需要掌握: 如何创建数据库,显示已经建立的数据库 相关知识 创建数据库 创建数据库是在系统磁盘上划分一块区域用于数据的存储和管理。 命令格…

C语言(第三十六天)

4. 位操作符&#xff1a;&、|、^ 位操作符有&#xff1a; & //按位与 | //按位或 ^ //按位异或 注&#xff1a;他们的操作数必须是整数。 直接上代码&#xff1a; #include <stdio.h> int main() { int num1 -3; int num2 5; num1 & num2; num1 | num2; nu…

HTML 播放器效果

效果图 实现代码 <!DOCTYPE HTML> <html><head><title>爱看动漫社区 | 首页 </title><link href"css/bootstrap.css" relstylesheet typetext/css /><!-- jQuery --><script src"js/jquery-1.11.0.min.js"…

Django主要特点

Django 是一个开源的 Python Web 开发框架&#xff0c;它提供了一系列的工具和功能&#xff0c;帮助开发人员快速、高效地构建 Web 应用程序。 以下是 Django 的一些主要特点&#xff1a; 1. 强大的 ORM&#xff08;对象关系映射&#xff09;&#xff1a; Django 提供了一个…

可拖拽编辑的流程图X6

先上图 //index.html&#xff0c;有时候可能加载失败&#xff0c;那就再找一个别的cdn 或者npm下载&#xff0c;如果npm下载&#xff0c; //那么需要全局引入或者局部引入&#xff0c;代码里面写法也会不同&#xff0c;详细的可以看示例<script src"https://cdn.jsdeli…

C++对C的扩展

文章目录 C对C的扩展::作用域运算符代码示例 namespace 命名空间代码示例命名空间的使用注意无名命名空间和命名空间别名using声明 语法的增强struct的增强 bool 类型三目运算符const 关键字C语言Cconst 替换define 引用引用作用于数组引用作为函数参数引用作为函数返回值例1&a…