1. Beikeshop 安装概述Beikeshop 是一款基于 PHP 开发的电商系统采用 Docker 容器化部署可以大幅简化安装过程。Docker 通过容器技术将应用及其依赖打包成标准化的单元实现一次构建随处运行的效果。对于 Beikeshop 这样的 Web 应用Docker 部署具有以下优势环境隔离避免与宿主机环境冲突快速部署镜像包含所有依赖无需手动安装版本控制可以精确管理应用版本资源高效相比虚拟机更轻量级2. 安装前准备2.1 系统要求在安装 Beikeshop 之前需要确保系统满足以下最低要求组件最低要求推荐配置操作系统Windows 10/11, macOS 10.15, Ubuntu 18.04Ubuntu 20.04 LTSCPU支持虚拟化的64位处理器4核及以上内存4GB8GB及以上存储20GB可用空间SSD存储Docker20.10.0最新稳定版2.2 启用虚拟化大多数现代CPU都支持硬件虚拟化但可能需要手动启用Windows系统重启进入BIOS/UEFI设置找到Virtualization Technology或类似选项启用后保存退出验证是否启用任务管理器 → 性能选项卡查看虚拟化是否显示已启用提示如果遇到Docker Desktop failed to start because virtualization support wasnt detected错误通常就是虚拟化未启用导致的。2.3 安装Docker引擎Windows/macOS安装下载Docker Desktop安装包官网https://www.docker.com/products/docker-desktop选择与系统匹配的版本运行安装程序Windows勾选Use WSL 2 instead of Hyper-V推荐macOS直接拖拽到Applications文件夹完成安装后启动Docker Desktop首次启动需要权限确认等待Docker引擎初始化完成Linux安装以Ubuntu为例# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 安装依赖 sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release # 添加Docker官方GPG密钥 sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg # 设置仓库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin # 验证安装 sudo docker run hello-world2.4 配置Docker镜像加速国内用户建议配置镜像加速以提升下载速度创建或修改配置文件sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://hub-mirror.c.163.com, https://mirror.baidubce.com ] } EOF重启Docker服务sudo systemctl daemon-reload sudo systemctl restart docker3. Beikeshop容器化部署3.1 获取Beikeshop镜像Beikeshop官方可能提供预构建的Docker镜像可以通过以下方式获取docker pull beikeshop/beikeshop:latest如果没有官方镜像我们需要自行构建准备DockerfileFROM php:8.1-apache # 安装系统依赖 RUN apt-get update apt-get install -y \ libzip-dev \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libssl-dev \ zip \ unzip \ git # 配置PHP扩展 RUN docker-php-ext-configure gd --with-freetype --with-jpeg RUN docker-php-ext-install -j$(nproc) gd pdo pdo_mysql zip # 安装Composer RUN curl -sS https://getcomposer.org/installer | php -- --install-dir/usr/local/bin --filenamecomposer # 设置工作目录 WORKDIR /var/www/html # 复制项目文件 COPY . . # 安装PHP依赖 RUN composer install --no-dev # 设置权限 RUN chown -R www-data:www-data /var/www/html # 暴露端口 EXPOSE 80构建镜像docker build -t beikeshop .3.2 使用Docker Compose部署更推荐使用docker-compose.yml文件定义多容器应用version: 3.8 services: app: image: beikeshop/beikeshop:latest # 或使用本地构建的镜像 # build: . ports: - 8080:80 volumes: - ./uploads:/var/www/html/uploads - ./config:/var/www/html/config environment: - DB_HOSTdb - DB_NAMEbeikeshop - DB_USERbeike - DB_PASSWORDbeike123 depends_on: - db restart: unless-stopped db: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORDroot123 - MYSQL_DATABASEbeikeshop - MYSQL_USERbeike - MYSQL_PASSWORDbeike123 volumes: - db_data:/var/lib/mysql restart: unless-stopped volumes: db_data:启动服务docker-compose up -d3.3 初始化Beikeshop访问安装页面浏览器打开 http://localhost:8080/install如果端口冲突请修改docker-compose.yml中的端口映射完成安装向导填写数据库连接信息与docker-compose.yml中一致设置管理员账号完成基础配置安装完成后建议删除install目录修改默认管理员密码4. 常见问题排查4.1 Docker启动失败问题现象 Docker Desktop failed to start because virtualization support wasnt detected解决方案确认BIOS中已启用虚拟化Windows用户启用Hyper-V和容器功能或改用WSL2后端检查是否与其他虚拟化软件冲突如VMware4.2 端口冲突问题现象 Bind for 0.0.0.0:8080 failed: port is already allocated解决方案查找占用端口的进程# Linux/macOS sudo lsof -i :8080 # Windows netstat -ano | findstr 8080停止占用进程或修改docker-compose.yml中的端口映射4.3 数据库连接问题问题现象 SQLSTATE[HY000] [2002] Connection refused解决方案确认数据库容器已启动docker ps检查环境变量是否正确docker exec -it beikeshop_app env | grep DB_测试数据库连接docker exec -it beikeshop_db mysql -ubeike -pbeike123 beikeshop4.4 文件权限问题问题现象 Failed to open stream: Permission denied解决方案确保挂载的卷有正确权限chmod -R 755 ./uploads chown -R www-data:www-data ./uploads或在docker-compose.yml中添加user参数app: user: www-data5. 生产环境优化建议5.1 安全加固修改默认端口ports: - 9000:80启用HTTPS使用Nginx反向代理或直接在容器中配置SSL定期备份# 备份数据库 docker exec beikeshop_db mysqldump -ubeike -pbeike123 beikeshop backup.sql # 备份上传文件 tar czvf uploads_backup.tar.gz ./uploads5.2 性能优化启用OPcacheRUN docker-php-ext-install opcache COPY opcache.ini /usr/local/etc/php/conf.d/配置PHP-FPMFROM php:8.1-fpm使用Redis缓存services: redis: image: redis:alpine app: environment: - REDIS_HOSTredis5.3 监控与日志查看容器日志docker logs -f beikeshop_app使用cAdvisor监控docker run \ --volume/:/rootfs:ro \ --volume/var/run:/var/run:ro \ --volume/sys:/sys:ro \ --volume/var/lib/docker/:/var/lib/docker:ro \ --volume/dev/disk/:/dev/disk:ro \ --publish8081:8080 \ --detachtrue \ --namecadvisor \ google/cadvisor:latest配置日志轮转app: logging: driver: json-file options: max-size: 10m max-file: 36. 日常维护操作6.1 容器管理启动/停止服务docker-compose start docker-compose stop进入容器shelldocker exec -it beikeshop_app bash更新容器docker-compose pull docker-compose up -d6.2 数据管理备份数据库docker exec beikeshop_db sh -c exec mysqldump --all-databases -uroot -p$MYSQL_ROOT_PASSWORD all-databases.sql恢复数据库cat backup.sql | docker exec -i beikeshop_db mysql -uroot -p$MYSQL_ROOT_PASSWORD迁移数据卷# 创建备份 docker run --rm --volumes-from beikeshop_db -v $(pwd):/backup busybox tar cvf /backup/db_backup.tar /var/lib/mysql # 恢复备份 docker run --rm --volumes-from new_db -v $(pwd):/backup busybox tar xvf /backup/db_backup.tar6.3 版本升级拉取新版本镜像docker-compose pull重新创建容器docker-compose up -d执行升级脚本docker exec beikeshop_app php upgrade.php注意升级前务必备份数据和配置文件避免升级失败导致数据丢失。