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

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


docker 学习-- 01 基础知识

docker 学习-- 02 常用命令

docker 学习-- 03 环境安装

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


通过上面的学习, 已经可以搭建简单的案例, 接着我会搭建几套 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.hqwc.cn/news/84390.html

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

相关文章

二、前端监控之方案调研

前端监控体系 一个完整的前端监控体系包括了日志采集、日志上报、日志存储、日志切分&计算、数据分析、告警等流程。 对于一名前端开发工程师来说,也就意味着工作不再局限于前端业务的开发工作,需要有Nginx服务运维能力、实时/离线分析能力、Node应…

WPF基础入门-Class6-WPF通知更改

WPF基础入门 Class6-WPF通知 1、显示页面&#xff1a; <Grid><StackPanel><TextBox Text"{Binding Name}"></TextBox><TextBox Text"{Binding Title}"></TextBox><Button Command"{Binding ShowCommand}&qu…

iMX6ULL 库移植 | Libgpiod 库的交叉编译及使用指南(linux)

GPIO口的操作&#xff0c;是很常见的功能。传统的GPIO sysfs接口已被弃用。自Linux 4.8起&#xff0c;内核提供了全新的操作gpio的方式libgpiod&#xff08;C library and tools for interacting with the linux GPIO character device&#xff09;&#xff0c;当然也更高效&am…

Electron学习3 使用serialport操作串口

Electron学习3 使用serialport操作串口 一、准备工作二、 SerialPort 介绍1. 核心软件包(1) serialport(2) serialport/stream(3) serialport/bindings-cpp(4) serialport/binding-mock(5) serialport/bindings-interface 2. 解析器包3. 命令行工具 三、创建一个demo程序1. 创建…

docker harbor私有库

目录 一.Harbor介绍 二.Harbor的特性 三.Harbor的构成 四.Harbor构建Docker私有仓库 4.2在Server主机上部署Harbor服务&#xff08;192.168.158.25&#xff09; 4.2.1 这时候这边就可以去查看192.168.158.25网页 4.3此时可真机访问serverIP 4.4通过127.0.0.1来登陆和推送镜…

【sgOvalMenu】自定义组件:椭圆形菜单,菜单按钮可以随着椭圆轨迹进行循环运动

特性&#xff1a; 可以设置椭圆轨迹宽度、高度 可以设置椭圆轨迹旋转角度&#xff0c;并且自动纠偏菜单文字水平状态可以设置运动轨迹坐标移动步长可以设置运动轨迹改变频率可以设置顺时针还是逆时针旋转 sgOvalMenu源码 <template><div :class"$options.name&…

LLMs多任务指令微调Multi-task instruction fine-tuning

多任务微调是单任务微调的扩展&#xff0c;其中训练数据集包括多个任务的示例输入和输出。在这里&#xff0c;数据集包含指导模型执行各种任务的示例&#xff0c;包括摘要、评论评分、代码翻译和实体识别。 您在这个混合数据集上训练模型&#xff0c;以便它可以同时提高模型在…

每日一博 - 闲聊云原生和容器编排

文章目录 概念1. 云原生&#xff08;Cloud Native&#xff09;&#xff1a;2. 容器编排&#xff08;Container Orchestration&#xff09;&#xff1a; 小结 概念 云原生和容器编排是两个不同的概念&#xff0c;但它们之间有着密切的联系。下面将分别介绍这两个概念&#xff0…

react解决死循环方法?

使用useeffect&#xff08;副作用&#xff09;方法结束这个操作 1、导入useeffect、useState 2、把下方代码写入&#xff1a;里面填写的是你要终止某个东西的代码 注意&#xff1a;不可不写&#xff0c;也可以写依赖或不写

JS算法之树(一)

前言 之前我们已经介绍过一种非顺序数据结构&#xff0c;是散列表。 JavaScript散列表及其扩展http://t.csdn.cn/RliQf 还有另外一种非顺序数据结构---树。 树数据结构 树是一种分层数据的抽象模型。公司组织架构图就是常见的树的例子。 相关术语 一个树结构&#xff0…

数据结构(Java实现)-java对象的比较

元素的比较 基本类型的比较 在Java中&#xff0c;基本类型的对象可以直接比较大小。 对象比较的问题 Java中引用类型的变量不能直接按照 > 或者 < 方式进行比较 默认情况下调用的就是equal方法&#xff0c;但是该方法的比较规则是&#xff1a;没有比较引用变量引用对象的…

iPhone 15 Pro与谷歌Pixel 7 Pro:哪款相机手机更好?

考虑到苹果最近将更多高级功能转移到iPhone Pro设备上的趋势,今年秋天iPhone 15 Pro与谷歌Pixel 7 Pro的对决将是一场特别有趣的对决。去年发布的iPhone 14 Pro确实发生了这种情况,有传言称iPhone 15 Pro再次受到了苹果的大部分关注。 预计iPhone 15系列会有一些变化,例如切…