生产环境下如何优雅地使用 Docker 运行宝塔面板?

此方案可能是全网最快的 宝塔面板 部署方案。 复习计算机网络时轻度折腾了 Linux、Docker、路由器 等,竟突然想到 Docker 部署宝塔面板的完美解决方案。在此使用 Python 开发并制作了宝塔面板 Docker 镜像。

您可能存在疑问,宝塔面板为何不直接装到系统中?我们使用不同的服务器,往往产生较大环境差异,CentOS、Debian、Ubuntu?每次新装宝塔面板,都需要选择对应系统的脚本,漫长的安装过程不提,初次登录需要使用系统生成的账号和密码,每次搭建需要重新配置部分环境,同时保存好每个服务器的 url、账户、密码。如果您和我一样,较高频率地使用服务器开发,便感到十分繁琐。有没有一个工具能一键秒建宝塔面板,并在搭建过程中配置好账户信息?由此便得到了今天的主角,cyberbolt/baota。仍然有疑问,宝塔面板运行的生产环境,如 MySQL,并不适合将数据全部存储在容器中,实际工作中可能遇到安全隐患。在此我提供了 方案二,生产环境中将容器内宝塔面板的运行目录挂载至宿主机硬盘中。您会发现,无论是 方案一 还是 二,对常用 Docker 的开发者来说,都远比直接安装宝塔便捷。在 Docker 中运行宝塔面板,由于容器的隔离性,唯一的不同便是 舍弃了部分系统功能,您直接通过宝塔修改系统,只能作用于容器,并不会影响宿主机系统,但这恰好也是容器的优点。而常用的 Nginx、MySQL(MariaDB) 等均能完美使用。

 

Docker 部署宝塔面板

此方案可能是全网最快的 宝塔面板 部署方案。该镜像基于 宝塔Linux正式版 7.7.0(官方纯净版,可升级) 制作。维护脚本使用 Python 开发,源码和 Dockerfile 均已上传至 GitHub(欢迎您的 Star)。

本镜像仅保留了最精简的 宝塔面板,未安装任何插件。初始化容器后,您可以根据需要选择安装插件。"Simple is better than complex!" 此外,如果您在生产环境下部署宝塔面板,请务必参考 方案二 创建容器。

使用方法如下:

(注:为了方便部署,该镜像去除了安全入口,您可以自行配置)

方案一(最快化部署)


docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest -port 端口号 -username 用户名 -password 密码

示例如


docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest -port 8888 -username cyberbolt -password abc123456

--net=host : 容器和主机使用同一网络

--restart=always: 守护进程,容器挂掉将自动重启

-port : 填写宝塔面板运行的端口号

-username: 填写宝塔面板的用户名

-password : 填写宝塔面板的密码


该方法的登录方式:

登陆地址: http://{{服务器的ip地址}}:{{您输入的端口号}}

账号: 您填写的用户名

密码: 您填写的密码

如果您未自定义用户名和密码,直接使用的如下命令


docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest

宝塔面板也会自动创建,此时可通过默认信息登录,默认信息为



登陆地址: http://{{服务器的ip地址}}:8888

账号: cyber

密码: abc12345

方案二(生产环境部署)

生产环境中,为了避免极小概率的数据丢失,我们将容器内的宝塔文件映射到宿主机的目录中(您之后安装的 Nginx、MySQL 等服务均会挂载到宿主机目录)。该方法是 Docker 部署宝塔面板的最优方案,可以在生产环境中运行。

首先按最简方案创建一个测试容器(为保存宝塔文件到宿主机目录中)

输入命令创建测试容器(这里仅为测试容器,为避免出错,后面几步请原封不动地复制粘贴)


docker run -itd --net=host --name baota-test cyberbolt/baota:latest -port 26756 -username cyberbolt -password abc123456

将 Docker 容器中的 /www 目录 拷贝至宿主机的 /www


docker cp baota-test:/www /www

拷贝完成后删除创建的测试容器


docker stop baota-test && docker rm baota-test

创建宝塔面板容器,并将宿主机目录映射至容器中(自行输入面板的 端口号、用户名 和 密码 后即可完成部署)


docker run -itd -v /www:/www --net=host --restart=always --name baota cyberbolt/baota:latest -port 端口号 -username 用户名 -password 密码

示例如


docker run -itd -v /www:/www --net=host --restart=always --name baota cyberbolt/baota:latest -port 8888 -username cyberbolt -password abc123456

--net=host : 容器和主机使用同一网络

--restart=always: 守护进程,容器挂掉将自动重启

-port : 填写宝塔面板运行的端口号

-username: 填写宝塔面板的用户名

-password : 填写宝塔面板的密码


该方法的登录方式:

登陆地址: http://{{服务器的ip地址}}:{{您输入的端口号}}

账号: 您填写的用户名

密码: 您填写的密码

部署成功!

电光笔记官网 https://www.cyberlight.xyz/

 

你可能感兴趣的