

生产环境下如何优雅地使用 Docker 运行宝塔面板?
source link: https://segmentfault.com/a/1190000040640506
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

生产环境下如何优雅地使用 Docker 运行宝塔面板?
<p>此方案可能是全网最快的 宝塔面板 部署方案。 复习计算机网络时轻度折腾了 Linux、Docker、路由器 等,竟突然想到 Docker 部署宝塔面板的完美解决方案。在此使用 Python 开发并制作了宝塔面板 Docker 镜像。</p>
<p>您可能存在疑问,宝塔面板为何不直接装到系统中?我们使用不同的服务器,往往产生较大环境差异,CentOS、Debian、Ubuntu?每次新装宝塔面板,都需要选择对应系统的脚本,漫长的安装过程不提,初次登录需要使用系统生成的账号和密码,每次搭建需要重新配置部分环境,同时保存好每个服务器的 url、账户、密码。如果您和我一样,较高频率地使用服务器开发,便感到十分繁琐。有没有一个工具能一键秒建宝塔面板,并在搭建过程中配置好账户信息?由此便得到了今天的主角,cyberbolt/baota。仍然有疑问,宝塔面板运行的生产环境,如 MySQL,并不适合将数据全部存储在容器中,实际工作中可能遇到安全隐患。在此我提供了 方案二,生产环境中将容器内宝塔面板的运行目录挂载至宿主机硬盘中。您会发现,无论是 方案一 还是 二,对常用 Docker 的开发者来说,都远比直接安装宝塔便捷。在 Docker 中运行宝塔面板,由于容器的隔离性,唯一的不同便是 舍弃了部分系统功能,您直接通过宝塔修改系统,只能作用于容器,并不会影响宿主机系统,但这恰好也是容器的优点。而常用的 Nginx、MySQL(MariaDB) 等均能完美使用。</p>
<p> </p>
<p>Docker 部署宝塔面板</p>
<p>此方案可能是全网最快的 宝塔面板 部署方案。该镜像基于 宝塔Linux正式版 7.7.0(官方纯净版,可升级) 制作。维护脚本使用 Python 开发,源码和 Dockerfile 均已上传至 GitHub(欢迎您的 Star)。</p>
<p>本镜像仅保留了最精简的 宝塔面板,未安装任何插件。初始化容器后,您可以根据需要选择安装插件。"Simple is better than complex!" 此外,如果您在生产环境下部署宝塔面板,请务必参考 方案二 创建容器。</p>
<p>使用方法如下:</p>
<p>(注:为了方便部署,该镜像去除了安全入口,您可以自行配置)</p>
<p>方案一(最快化部署)</p>
<pre>docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest -port 端口号 -username 用户名 -password 密码
</pre>
<p>示例如</p>
<pre>docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest -port 8888 -username cyberbolt -password abc123456
</pre>
<p>--net=host : 容器和主机使用同一网络</p>
<p>--restart=always: 守护进程,容器挂掉将自动重启</p>
<p>-port : 填写宝塔面板运行的端口号</p>
<p>-username: 填写宝塔面板的用户名</p>
<p>-password : 填写宝塔面板的密码</p>
<pre>该方法的登录方式:
登陆地址: http://{{服务器的ip地址}}:{{您输入的端口号}}
账号: 您填写的用户名
密码: 您填写的密码
</pre>
<p>如果您未自定义用户名和密码,直接使用的如下命令</p>
<pre>docker run -itd --net=host --restart=always --name baota cyberbolt/baota:latest
</pre>
<p>宝塔面板也会自动创建,此时可通过默认信息登录,默认信息为</p>
<pre>
登陆地址: http://{{服务器的ip地址}}:8888
账号: cyber
密码: abc12345
</pre>
<p>方案二(生产环境部署)</p>
<p>生产环境中,为了避免极小概率的数据丢失,我们将容器内的宝塔文件映射到宿主机的目录中(您之后安装的 Nginx、MySQL 等服务均会挂载到宿主机目录)。该方法是 Docker 部署宝塔面板的最优方案,可以在生产环境中运行。</p>
<p>首先按最简方案创建一个测试容器(为保存宝塔文件到宿主机目录中)</p>
<p>输入命令创建测试容器(这里仅为测试容器,为避免出错,后面几步请原封不动地复制粘贴)</p>
<pre>docker run -itd --net=host --name baota-test cyberbolt/baota:latest -port 26756 -username cyberbolt -password abc123456
</pre>
<p>将 Docker 容器中的 /www 目录 拷贝至宿主机的 /www</p>
<pre>docker cp baota-test:/www /www
</pre>
<p>拷贝完成后删除创建的测试容器</p>
<pre>docker stop baota-test && docker rm baota-test
</pre>
<p>创建宝塔面板容器,并将宿主机目录映射至容器中(自行输入面板的 端口号、用户名 和 密码 后即可完成部署)</p>
<pre>docker run -itd -v /www:/www --net=host --restart=always --name baota cyberbolt/baota:latest -port 端口号 -username 用户名 -password 密码
</pre>
<p>示例如</p>
<pre>docker run -itd -v /www:/www --net=host --restart=always --name baota cyberbolt/baota:latest -port 8888 -username cyberbolt -password abc123456
</pre>
<p>--net=host : 容器和主机使用同一网络</p>
<p>--restart=always: 守护进程,容器挂掉将自动重启</p>
<p>-port : 填写宝塔面板运行的端口号</p>
<p>-username: 填写宝塔面板的用户名</p>
<p>-password : 填写宝塔面板的密码</p>
<pre>该方法的登录方式:
登陆地址: http://{{服务器的ip地址}}:{{您输入的端口号}}
账号: 您填写的用户名
密码: 您填写的密码
</pre>
<p>部署成功!</p>
<p>电光笔记官网 https://www.cyberlight.xyz/</p>
<p> </p>
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK