【备忘】在Docker中安装宝塔面板,实现环境隔离,又能快速迁移服务器环境

在Docker中安装宝塔面板,实现环境隔离,又能快速迁移服务器环境。

操作步骤和分析:


方案对比

方案 优点 缺点
Docker中安装宝塔 环境隔离、数据独立、迁移便捷、不影响宿主机 需手动配置端口映射和存储卷
宝塔中安装Docker 图形化操作便捷,适合已有宝塔用户 依赖冲突风险高,可能影响宿主机环境,迁移复杂

(我选择第一种方案)

Docker安装宝塔面板全流程

一、环境准备
  1. 安装Docker

    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh get-docker.sh --mirror Aliyun
    
  2. 配置镜像加速

    sudo tee /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": [
        "https://registry.docker-cn.com",
        "https://mirror.ccs.tencentyun.com"
      ]
    }
    EOF
    sudo systemctl restart docker
    
二、创建宝塔容器
  1. 拉取CentOS镜像

    docker pull centos:7
    
  2. 启动容器(关键参数说明)

    docker run -d \
      --name baota \
      --privileged=true \
      --restart=always \
      -p 9888:8888 \        # 面板端口
      -p 80:80 \            # HTTP服务
      -p 443:443 \          # HTTPS服务
      -p 20:20 -p 21:21 \   # FTP服务
      -v ~/www:/www \       # 网站目录持久化
      centos:7
    
  3. 进入容器安装宝塔

    docker exec -it baota /bin/bash
    # 容器内执行:
    yum install -y wget && \
    wget -O install.sh http://download.bt.cn/install/install_6.0.sh && \
    sh install.sh
    
三、访问与配置
  1. 获取登录信息

    bt default
    

    输出示例:

    〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒
    〒 面板地址: http://服务器IP:9888/xxxxxx
    〒 用户名: xxxxxx
    〒 密码: xxxxxx
    
  2. 访问宝塔面板
    浏览器访问 http://服务器IP:9888/xxxxxx,输入上述账号密码。


迁移服务器

  1. 导出容器配置

    docker export baota > baota.tar
    
  2. 新服务器导入

    cat baota.tar | docker import - baota:latest
    docker run -d --name new_baota --privileged=true -p 9888:8888 ... baota:latest
    
  3. 恢复数据
    将原服务器的 ~/www 目录复制到新服务器相同路径即可。


注意事项

  1. 端口冲突
    若宿主机已占用80/443等端口,需修改映射(如 -p 8080:80)。

  2. 安全组规则
    需在云服务器控制台放行9888、80、443等端口。

  3. 性能优化
    建议限制容器资源:

    --memory 4g --cpus 2
    
  4. 备份策略
    定期备份 /www 目录,可使用:

    tar -czvf www_backup_$(date +%F).tar.gz ~/www
    

常见问题

  • 无法登录面板?
    检查防火墙是否放行端口,或尝试 bt restart 重启服务。

  • 容器启动后自动停止?
    检查是否缺少 --privileged=true 参数。

  • 如何升级宝塔?
    进入容器执行:

    curl http://download.bt.cn/install/update6.sh | bash
    

通过Docker部署宝塔面板,既保持了宿主机的纯净,又能实现服务快速复制。后续可通过宝塔的Web界面直接管理容器内的网站、数据库等服务,兼顾效率与隔离性。

END

你可能感兴趣的:(docker,服务器,容器)