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 新建本地项目
文章目录
- 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扩展
第一种直接小皮面板下载一个就可访问过于简单不在演示 咱们来搞第二种
去商店直接 搜索安装
顺便按个扩展
刷新发现数据库密码错误
这边自己导入一下库 这里不给大家演示了
其他报错:
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; 刷新权限
这样就一切正常了