Docker 安装配置宝塔面板

宝塔面板是什么?

宝塔 Linux 面板是提升运维效率的服务器管理软件,支持一键 LAMP/LNMP/集群/监控/网站/FTP/数据库/JAVA 等 100 多项服务器管理功能。有 30 个人的专业团队研发及维护,经过 200 多个版本的迭代,功能全,少出错且足够安全,已获得全球百万用户认可安装。运维要高效,装宝塔。

为什么使用 Docker 安装?

  1. 环境隔离,一个主机可以部署多套服务

  2. 宝塔对主机控制度较高,依赖关系复杂,而 Docker 可以保证宝塔服务不影响到宿主机其他服务。

  3. 由于和宿主机环境隔离,不容易被木马工具。

  4. 宝塔面板的兼容性顺序为 Centos7.x > Debian10 > Ubuntu 20.04 > Cenots8.x > Ubuntu 18.04 > 其它系统,而用户的主机五花八门,为了获取最佳的兼容性,使用 Docker 部署是不二选择。

  5. Docker 管理成本低,方便迁移。

  6. 可随时管理容器,无需重置服务器。

Docker 安装

推荐使用脚本安装:

curl -fsSL https://get.docker.com -o get-docker.sh 
sudo sh get-docker.sh --mirror Aliyun

安装成功后,会自动启动 Docker 服务。用户可以使用 systemctl is-enabled docker 来确认 Docker 服务是否是开机自启动。如果不是请使用 systemctl enable docker 设置自启动。

代理加速

执行 nano /etc/docker/daemon.json 中写入如下内容:

{  "registry-mirrors": [    "https://registry.docker-cn.com",    "https://mirror.baidubce.com",    "https://hub-mirror.c.163.com"
  ]
}

开端口教程,不开不能用

宝塔需要的端口:8888、888、20、21、80、443

安装宝塔镜像

curl -fsSL https://youngjuning.js.org/shell/baota/install.sh | sh

  • /www/wwwroot 挂载在宿主机的 ~/wwwroot 目录

  • /www 挂载在 baota_www volume,即 /var/lib/docker/volumes/baota_www/

上面的脚本是为了我为了方便管理,等价于

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


登录方式

  • 登陆地址:http://{{面板ip地址}}:8888

  • 初始账号:username

  • 初始密码:password

宝塔面板命令行

进入容器:

docker exec -it baota bash

执行 bt 进行交互式操作:

进阶配置

  1. 登录面板后,请立即修改面板用户和面板密码,并建议修改面板端口和安全入口。

  2. 更新的话,可以使用面板提供的更新功能。

备份宝塔面板容器

如果我们迁移的话,不需要再重复上面的安装配置步骤,直接使用我提供的脚本:

curl -fsSL https://youngjuning.js.org/shell/baota/backup.sh | sh
#!/bin/bash
if [[ "$(docker images -q baota 2> /dev/null)" != "" ]];
then
  docker rmi baota
fi
docker commit -a "backup_shell" -m "backup baota" -p baota baota
docker save -o baota.tar baota

压缩包 baota.tar 将备份到当前目录,上传到新的服务器之后载入容器:

docker load -i baota.tar

恢复容器:

curl -fsSL https://youngjuning.js.org/shell/baota/restore.sh | sh
docker run -tid --name baota --net=host --privileged=true --shm-size=1g --restart always -v baota_www:/www -v ~/wwwroot:/www/wwwroot baota

已知问题

  1. 部分机器初始化环境可能某些端口被占用,比如 80 端口被占用,使用 netstat -lnp|grep 80 查看进程 PID,然后使用 kill -9 XXXX 结束该进程 (xxxx 为进程的相关 pid)。

  2. 如果事先安装了 nginx,请先卸载,完全卸载请执行 curl -fsSL https://youngjuning.js.org/shell/nginx/uninstall.sh | sh