宝塔面板结合Docker:一站式网站部署实战指南
1. 宝塔面板与Docker的黄金组合第一次接触服务器运维的朋友往往会被各种命令行和配置文件搞得晕头转向。我当年也是这样直到发现了宝塔面板这个神器。它就像给服务器装了个Windows桌面点点鼠标就能完成80%的运维操作。而Docker更像是乐高积木把复杂的应用打包成标准化模块想用哪个直接拼装就行。这两个工具组合起来特别适合以下场景个人博客搭建WordPressMySQL整套环境5分钟就能跑起来开发测试环境不同项目需要不同PHP版本Docker容器完全隔离不冲突微服务部署每个服务独立容器更新维护互不影响临时应用试用想测试某个开源项目用完即删不留痕迹最近帮朋友部署在线文档系统时用这套方案从零开始到上线只用了不到半小时。传统方式光安装依赖可能就要折腾半天现在只需要关注业务本身这才是技术该有的样子。2. 环境准备与基础配置2.1 宝塔面板安装详解以Ubuntu 20.04为例SSH连接服务器后执行wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh sudo bash install.sh安装过程会提示确认安装路径直接回车用默认设置面板用户名建议改成自己的设置面板密码至少8位含大小写安装完成后会显示面板访问地址和登录信息记得保存。首次登录需要绑定宝塔账号没有的话注册一个就行。安全提示立即修改默认8888端口面板设置→安全设置开启BasicAuth二次验证配置IP白名单特别是企业环境2.2 Docker引擎安装宝塔的应用商店里搜索Docker点击安装即可。也可以手动安装最新版curl -fsSL https://get.docker.com | sh sudo systemctl enable docker sudo usermod -aG docker $USER安装后需要重新登录SSH使权限生效。验证安装docker version # 应该显示Client和Server两个版本信息常见问题排查如果提示权限拒绝执行newgrp docker更新用户组国内服务器建议配置镜像加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [https://your-mirror.aliyuncs.com] } EOF sudo systemctl restart docker3. 实战部署FileBrowser3.1 镜像拉取与配置在宝塔面板的Docker管理界面点击镜像管理→获取镜像搜索filebrowser/filebrowser。或者命令行操作docker pull filebrowser/filebrowser:latest查看已下载镜像docker images # 输出示例 # REPOSITORY TAG IMAGE ID CREATED SIZE # filebrowser/filebrowser latest a1b2c3d4e5f6 2 weeks ago 20MB3.2 容器化部署关键配置参数端口映射容器80→宿主机92避免与面板冲突数据卷挂载/srv/filebrowser:/srv持久化存储环境变量-e FB_BASEURL/filemgr设置访问路径宝塔可视化操作步骤进入Docker→容器列表→创建容器选择刚下载的镜像填写端口映射92:80添加存储卷/srv/filebrowser→/srv设置容器名my-filebrowser点击提交启动等效命令行docker run -d \ --name my-filebrowser \ -p 92:80 \ -v /srv/filebrowser:/srv \ filebrowser/filebrowser3.3 访问与安全配置在宝塔面板的安全页面放行92端口后浏览器访问http://服务器IP:92。首次登录使用默认账号admin/admin记得立即修改密码。进阶安全设置配置Nginx反向代理启用HTTPS设置IP访问限制开启双因素认证2FA# 宝塔Nginx配置示例 location /filemgr/ { proxy_pass http://127.0.0.1:92/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }4. 生产环境优化技巧4.1 容器编排与管理单个容器还好管理当有多个关联容器时比如WebDBRedis推荐使用docker-compose。在宝塔面板创建docker-compose.ymlversion: 3 services: filebrowser: image: filebrowser/filebrowser ports: - 92:80 volumes: - ./data:/srv restart: unless-stopped mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: yourpassword volumes: - ./mysql:/var/lib/mysql启动命令docker-compose up -d4.2 备份与迁移宝塔的计划任务配合Docker命令实现自动备份# 备份容器配置 docker inspect my-filebrowser filebrowser_backup.json # 备份数据卷 tar -czvf filebrowser_data.tar.gz /srv/filebrowser迁移到新服务器只需安装宝塔和Docker恢复数据卷执行原docker run命令或docker-compose文件4.3 性能监控宝塔的Docker模块自带监控面板也可以安装Portainer增强管理docker volume create portainer_data docker run -d \ -p 9000:9000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce5. 常见问题解决方案5.1 端口冲突处理如果发现端口占用比如92端口被其他服务使用# 查找占用进程 sudo lsof -i :92 # 或者 sudo netstat -tulnp | grep 92 # 修改容器映射端口为93:80 docker stop my-filebrowser docker rm my-filebrowser docker run -d -p 93:80 --name my-filebrowser filebrowser/filebrowser5.2 数据恢复操作当容器异常需要重建时数据卷不会丢失。只需重新创建容器并挂载原卷docker run -d \ --name new-filebrowser \ -p 92:80 \ -v /srv/filebrowser:/srv \ filebrowser/filebrowser5.3 资源限制配置防止单个容器占用过多资源docker update \ --cpus 1 \ --memory 512M \ --memory-swap 1G \ my-filebrowser在宝塔面板的Docker管理界面也可以可视化设置这些参数。6. 扩展应用场景6.1 WordPress容器化部署传统LNMP环境部署WordPress需要单独配置每个组件用Docker只需docker run -d \ --name wordpress \ -p 8080:80 \ -v /srv/wordpress:/var/www/html \ wordpress:latest配合MySQL容器docker run -d \ --name mysql \ -e MYSQL_ROOT_PASSWORDsecurepwd \ -e MYSQL_DATABASEwordpress \ -v /srv/mysql:/var/lib/mysql \ mysql:5.76.2 自建Git服务Gitea是轻量级Git服务docker run -d \ --name gitea \ -p 3000:3000 \ -p 2222:22 \ -v /srv/gitea:/data \ gitea/gitea:latest6.3 监控系统搭建PrometheusGrafana监控组合# docker-compose.yml version: 3 services: prometheus: image: prom/prometheus ports: - 9090:9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml grafana: image: grafana/grafana ports: - 3000:3000 volumes: - grafana-storage:/var/lib/grafana volumes: grafana-storage:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2525216.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!