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

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


docker 学习-- 01 基础知识

docker 学习-- 02 常用命令

docker 学习-- 03 环境安装

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

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


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


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

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
这样就一切正常了
在这里插入图片描述

### 使用 Docker宝塔面板中部署 Nginx 要在宝塔面板中通过 Docker 部署 Nginx,可以按照以下方法操作: #### 宝塔面板中的 Docker 功能概述 宝塔面板提供了便捷的 Docker 管理功能,允许用户轻松创建和管理容器Docker 的优势在于其轻量级特性以及良好的隔离性和可移植性[^1]。 #### 创建并配置 Docker 容器宝塔面板中启动一个新的 Docker 容器来运行 Nginx 是一种常见的实践方式。以下是具体的操作说明: 1. **登录到宝塔面板** 打开浏览器输入服务器 IP 地址加默认端口号(通常是 `http://<server-ip>:8888`),进入宝塔面板界面[^2]。 2. **启用 Docker 插件** 如果尚未安装 Docker 插件,则需先前往插件市场找到 Docker 并完成安装与初始化设置。 3. **拉取官方 Nginx 镜像** 进入 Docker 页面后点击“镜像”,搜索框内键入 “nginx” 查找官方发布的最新版本镜像文件下载至本地存储位置以便后续使用。 4. **新建容器实例** 转移到“容器”选项卡下,“添加容器”。指定名称如 my-nginx-container ,选择刚刚获取下来的 nginx:latest 或其他特定标签作为基础映射关系设定如下: - 将主机目录 `/www/nginx/html` 映射到容器内部路径 `/usr/share/nginx/html` (假设这是网站根目录) - 开启端口转发规则:外部访问地址绑定为 80 对应于容器里的相同编号 ```bash docker run --name=my-nginx-container \ -v /www/nginx/html:/usr/share/nginx/html \ -p 80:80 \ -d nginx:latest ``` 5. **验证服务状态** 返回列表查看新建立起来的服务进程是否处于正常运行当中;如果一切顺利的话现在应该可以通过公网域名或者IP直接浏览由该虚拟机承载的内容页面了! 6. **进入容器终端调试 (如有必要)** 当遇到某些特殊情况需要进一步排查错误原因时,可通过命令行工具连接目标 session 来执行更多高级指令比如修改配置文件之类的动作。 ```bash docker exec -it my-nginx-container /bin/bash ``` 以上步骤完成后即可成功利用 Docker 技术框架配合宝塔控制台实现快速搭建 web server 环境的目的。 ```python print("Nginx has been successfully deployed via Docker on BaoTa Panel.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小*-^-*九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值