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

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


docker 学习-- 01 基础知识

docker 学习-- 02 常用命令

docker 学习-- 03 环境安装

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

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


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

欢迎大家一起 探讨学习


### 文章目录

  • [docker 学习-- 04 实践 1(宝塔)](#文章目录 docker 学习-- 04 实践 1(宝塔) @TOC 1. 搭建本地宝塔 1.1 pch18/baota 1.2 修改运行命令 1.3. 登录宝塔修改配置 1.4 新建本地项目)
  • [@[TOC](文章目录)](#文章目录 docker 学习-- 04 实践 1(宝塔) @TOC 1. 搭建本地宝塔 1.1 pch18/baota 1.2 修改运行命令 1.3. 登录宝塔修改配置 1.4 新建本地项目)
  • [1. 搭建本地宝塔](#文章目录 docker 学习-- 04 实践 1(宝塔) @TOC 1. 搭建本地宝塔 1.1 pch18/baota 1.2 修改运行命令 1.3. 登录宝塔修改配置 1.4 新建本地项目)
  • [1.1 pch18/baota](#文章目录 docker 学习-- 04 实践 1(宝塔) @TOC 1. 搭建本地宝塔 1.1 pch18/baota 1.2 修改运行命令 1.3. 登录宝塔修改配置 1.4 新建本地项目)
  • [1.2 修改运行命令](#文章目录 docker 学习-- 04 实践 1(宝塔) @TOC 1. 搭建本地宝塔 1.1 pch18/baota 1.2 修改运行命令 1.3. 登录宝塔修改配置 1.4 新建本地项目)
  • [1.3. 登录宝塔修改配置](#文章目录 docker 学习-- 04 实践 1(宝塔) @TOC 1. 搭建本地宝塔 1.1 pch18/baota 1.2 修改运行命令 1.3. 登录宝塔修改配置 1.4 新建本地项目)
  • [1.4 新建本地项目](#文章目录 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 本地端口:容器端口 去添加

bash 复制代码
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.这个是我修改后的

bash 复制代码
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 这是是密码

bash 复制代码
 cd /www/server/panel && btpython tools.py panel testpasswd

执行完显示的 是登录的账号 username

如果登录失败多次请执行下边的

bash 复制代码
rm -f /www/server/panel/data/*.login

再次登录就成功进来了

1.4 新建本地项目

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

我是在本地文件夹直接通过git 拉取文件这里就自动显示在这里了

接着去配置一下创建一个新项目 这里我是完全把他当做一个项目去配置的

这里这个项目是用的 tp5.1

我们通过 IP访问一下

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

第一种咱本地装一个Redis 去链接本地的

第二种我们在容器内去安装Redis 在php上在安装 Redis扩展

第一种直接小皮面板下载一个就可访问过于简单不在演示 咱们来搞第二种

去商店直接 搜索安装

顺便按个扩展

刷新发现数据库密码错误

这边自己导入一下库 这里不给大家演示了

其他报错:

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; 刷新权限

这样就一切正常了

相关推荐
biter008819 分钟前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
蜜獾云39 分钟前
docker 安装雷池WAF防火墙 守护Web服务器
linux·运维·服务器·网络·网络安全·docker·容器
Code哈哈笑1 小时前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
年薪丰厚2 小时前
如何在K8S集群中查看和操作Pod内的文件?
docker·云原生·容器·kubernetes·k8s·container
zhangj11252 小时前
K8S Ingress 服务配置步骤说明
云原生·容器·kubernetes
岁月变迁呀2 小时前
kubeadm搭建k8s集群
云原生·容器·kubernetes
墨水\\2 小时前
二进制部署k8s
云原生·容器·kubernetes
Source、2 小时前
k8s-metrics-server
云原生·容器·kubernetes
颜淡慕潇2 小时前
【K8S问题系列 |19 】如何解决 Pod 无法挂载 PVC问题
后端·云原生·容器·kubernetes
QQ同步助手2 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度