宝塔面板一键docker部署 by pch18

本文共有3769个字,关键词:docker宝塔

# 宝塔面板一键docker部署
镜像为绑定github的dockerfile文件在dockerHub上自动生成,所以不可能有植入后台的行为,请放心使用.
镜像生成文件可以在github上查看.请大家监督.
制作这个纯粹是为了赚点github的关注量,好用之余请不要忘了去github加个Star一下哦,链接在最下方

通过host模式运行宝塔镜像

docker run -tid --name baota --net=host --privileged=true --shm-size=1g --restart always -v ~/wwwroot:/www/wwwroot pch18/baota

建议使用上述host网络模式启动,不需要设置映射端口,自动映射宝塔面板全端口到外网
正常的bridge模式可能会造成网站后台不能获取用户真实ip地址.

通过bridge模式运行宝塔镜像

如果特殊情况不能使用host网络模式(macos和windows不支持host), 使用下述命令重新以bridge网络模式运行

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

登录方式

  • 登陆地址 http://{{面板ip地址}}:8888
  • 初始账号 username
  • 初始密码 password

由于docker镜像的特殊性,随机密码是安装面板的时候生成的,
所有用户的随机密码其实都相同,没有随机的意义,
为了方便部署,已经去除安全入口,且设置成上述密码,
请大家登陆后第一时间修改账号密码!!

删除容器命令如下

docker rm -fv baota

版本命名说明

pch18/baotapch18/baota:latest等同pch18/baota:lnmp
pch18/baota:lnmp为最新版本的官方纯净安装的基础上安装nginx,mysql,php
pch18/baota:lnp 为官方版本纯净安装的基础上安装nginx,php(不内置mysql,用于外置数据库的环境)
pch18/baota:lamp 为官方版本纯净安装的基础上安装apache,php
pch18/baota:lap 为官方版本纯净安装的基础上安装apache,php(不内置mysql,用于外置数据库的环境)
pch18/baota:clear 为官方版本纯净安装, 不默认安装nginx,mysql,php等程序

/www文件夹建议保存在volume卷中, /www/wwwroot建议映射到宿主机的目录下,方便上传网站代码等文件

安装完成后以后可以随时使用内置升级,升级到最新版本,
由于面板数据都保存在持久化的卷中, 即使删除容器(不删除volumn)后重新运行,
原来的面板和网站数据都能得到保留.
启动容器时自动启动所有服务

如果还没有安装docker的请运行这个安装脚本
https://pch18.cn/archives/install_docker.html

好用请收藏加星支持一下,谢谢! 其他问题和建议请在github的issue里面交流.
github issue传送门: https://github.com/pch18-docker/baota/issues
dockerHub传送门: https://hub.docker.com/r/pch18/baota/
个人主页传送门: https://pch18.cn/archives/docker-baota.html

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

pch18

(๑>ڡ<)☆谢谢老板~

使用微信扫描二维码完成支付

版权声明:如无特别说明,本文为作者原创,转载请在首行注明来源:https://pch18.cn/archives/docker-baota.html
添加新评论
已有 38 条评论
  1. 程序员:

    层数太多了,19layers 有点臃肿

  2. 萧逸:

    博主,有两个问题请教下哈
    1、我在docker容器内的宝塔里装了php的扩展,还有宝塔的各种配置,如何保证容器删除数据不丢失?
    2、xdebug的时候,需要端口,怎么动态增加?只能删掉容器吗?

    1. 神一样的男人: 回复 @萧逸

      我也想知道怎么弄

  3. ququ:

    最近想搞下kubernetes分布式word press, 学习下

  4. xiaoyi:

    老大您好,我用的是openwer Docker版 内置空间太小,安装不上,请问怎样安装到外置硬盘上/mnt/sda1

    1. pch18: 回复 @xiaoyi

      把整个docker运行目录复制到外挂盘上,再在原来位置ln -s到复制的目录

  5. yinser:

    下载后5.87G,怎么这么大?

    1. pch18: 回复 @yinser

      近期会出 精简版,删除一些编译时产生的垃圾

      1. ququ: 回复 @pch18

        期待中

        1. pch18: 回复 @ququ

          不好意思,最近在找工作,可能要等安定下来,再着手去做。
          大家有好的建议可以直接pr,谢谢

  6. bitch:

    容器追加端口怎么操作

    1. pch18: 回复 @bitch

      执行运行命令的时候 加上参数 -p 主机端口:容器内端口
      如果容器已经生成的话,需要删掉容器重新生成,挂载volume保持不变,不影响设置数据,暂时没找到动态添加端口的方法。

  7. bitch:

    macbook安装你这个镜像后 phpstorm xdebug怎么配置 一直调试失败

    1. pch18: 回复 @bitch

      不追加映射端口的话,尝试直接连接容器的ip地址加端口号,可能需要设置nat转发。

    2. pch18: 回复 @bitch

      开放需要的端口

  8. seo:

    添加了几个备份网站和数据库的计划任务,但是都不能自动执行,可以手动执行。

    1. pch18: 回复 @seo

      检查 crond 有没有启动,应该设置了自启的。

  9. shuangguo:

    还有就是,我是在win10下安装的,FTP访问时,读取目录列表失败。

    1. pch18: 回复 @shuangguo

      win10 没有做过测试,目前只能保证linux和macos下运行,很抱歉

  10. shuangguo:

    调用systemctl时,会报Failed to get D-Bus connection: Operation not permitted 错误,如果启动容器时,加上/usr/sbin/init ,又会导致面板无法访问

    1. pch18: 回复 @shuangguo

      你的系统环境能提供一下么,os的版本等

  11. ougege:

    在安装网站时,mysql总是连接失败;在宝塔面板使用phpmyadmin正确账号密码登录也是提示错误

    1. ougege: 回复 @ougege

      mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES)

      1. pch18: 回复 @ougege

        你是不是把 root 用户删掉了啊, 亦或者是把 localhost 的root 删掉了啊?
        如果保留的账户连接来源是%的话,那本地连接不上,只能远程连接

  12. Rocky:

    你好,今天测试了一遍,非常好,另外请问可以转载么?

    1. pch18: 回复 @Rocky

      可以,注明来源网站 https://pch18.cn/archives/docker-baota.html 即可

  13. fuyun:

    不知道怎么回事,最近用建的站用端口不能访问了。以前是能访问的,最近访问不了,咋回事
    如以前是www.xxx.com:81.这样能访问,最近访问不了。www.xxx.com访问了路由器了,我是软路由

    1. pch18: 回复 @fuyun

      您路由器上的端口映射有设置好嘛?

  14. comp:

    baota:clear 基于这个镜像再镜像,很多层,能否搞一个相对完整Dockerfile,安装nginx/php7.3/mysql8/redis/memchache/phpmyadmin

    1. pch18: 回复 @comp

      phpmyadmin会在后续版本中加入默认安装

    2. pch18: 回复 @comp

      这个需求暂时比较小众,如果有更多人提出会考虑采纳
      或者您可以fork我的代码后自行修改。

  15. hcp:

    你这个删除所有容器,会导致数据卷仍无法删除,
    docker volume rm a4038c0fa846ec415d7b08605962f12443425f76fd4d2e6e29369cb1cf0749e3 --force
    Error response from daemon: remove a4038c0fa846ec415d7b08605962f12443425f76fd4d2e6e29369cb1cf0749e3: error removing volume path '/var/lib/docker/volumes/a4038c0fa846 ec415d7b08605962f12443425f76fd4d2e6e29369cb1cf0749e3/_data': unlinkat /var/lib/docker/volumes/a4038c0fa846ec415d7b08605962f12443425f76fd4d2e6e29369cb1cf0749e3/_data/ server/panel/install/public.sh: operation not permitted

    1. pch18: 回复 @hcp

      您看看是不是
      /var/lib/docker/volumes/a4038c0fa846ec415d7b08605962f12443425f76fd4d2e6e29369cb1cf0749e3/_data/ server/panel/install/public.sh
      被加上了i标记了呢?
      这个是宝塔官方的设置,
      您可以尝试对不能删除的文件执行 chattr -i {文件名},
      再删除试试呢?

  16. hcp:

    还有一个问题,这个镜像竟然5G多,真是吓人

    1. pch18: 回复 @hcp

      这个是因为内置了nginx,php,mysql,
      正常宿主机上安装也是需要占用这么多空间的。
      如果您有精简方面的优化建议欢迎指出。

  17. hcp:

    楼主辛苦了,感觉少了一个日志和数据库备份 映射到本地

    1. pch18: 回复 @hcp

      不过目前这些数据是存在volume里面的,
      volume里面的数据是可以在宿主机上直接访问的。(仅限linux)
      具体方法您可以尝试百度一下

    2. pch18: 回复 @hcp

      不客气,最近工作比较忙,等过段时间会考虑这个问题。