当前位置: 首页 > Linux

如何优雅的使用Docker在生产环境中运行宝塔面板?

时间:2023-04-06 22:45:50 Linux

该方案可能是全网最快的宝塔面板部署方案。在复习计算机网络的时候,稍微折腾了一下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)。

此图只保留了最精简的宝塔面板,没有安装任何插件。容器初始化后,您可以根据需要选择安装插件。“简单胜于复杂!”另外,如果您在生产环境部署宝塔面板,请参考方案二创建容器。

使用方法如下:

(注意:为了部署方便,镜像中已经去掉了安全入口,大家可以自行配置)

方案一(部署最快)

dockerrun-itd--net=host--restart=always--namebaotacyberbolt/baota:latest-port端口号-用户名用户名-密码密码

例如

dockerrun-itd--net=host--restart=always--namebaotacyberbolt/baota:latest-port8888-usernamecyberbolt-passwordabc123456

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

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

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

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

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

该方法的登录方式:登录地址:http://{{服务器的ip地址}}:{{您输入的端口号}}帐号:您填写的用户名密码:你填写的密码

如果你没有自定义用户名和密码,直接使用下面的命令

dockerrun-itd--net=host--restart=always--namebaotacyberbolt/baota:latest

宝塔面板也会自动创建。默认信息登录,默认信息为

登录地址:http://{{服务器ip地址}}:8888账号:cyber密码:abc12345

方案2(生产环境部署)

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

先按照最简单的方案创建一个测试容器(把宝塔文件保存在host目录下)

输入命令创建一个测试容器(这里只是测试容器,为了避免出错,请原封不动复制粘贴以下步骤)

dockerrun-itd--net=host--namebaota-testcyberbolt/baota:latest-port26756-usernamecyberbolt-passwordabc123456

复制Docker容器中的/www目录到宿主机的/www

dockercpbaota-test:/www/www

删除创建的复制完成后测试容器

dockerstopbaota-test&&dockerrmbaota-test

创建一个宝塔面板容器,将host目录映射到容器(输入端口号,用户名和密码后即可完成部署)

dockerrun-itd-v/www:/www--net=host--restart=always--namebaotacyberbolt/baota:latest-port端口号-用户名用户名-密码密码

示例

dockerrun-itd-v/www:/www--net=host--restart=always--namebaotacyberbolt/baota:latest-port8888-usernamecyberbolt-passwordabc123456

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

--restart=always:keep如果容器挂了,会自动重启

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

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

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

本方法登录方式:登录地址:http://{{服务器ip地址}}:{{portnumberyouentered}}Account:你填写的Usernameandpassword:你填写的密码

部署成功!

Cyber??lightNotes官网https://www.cyberlight.xyz/