You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Windows11中Docker Desktop仅自动启动MariaDB容器?

问题分析与解决方案

核心原因

仅MariaDB容器自动启动,主要源于两个关键问题:

1. 重启策略配置差异

你的docker-compose.yml中,MariaDB服务明确设置了restart: always,这会让Docker守护进程在Windows 11启动Docker Desktop时自动拉起该容器。而Apache和PHP服务未配置任何restart策略,默认值为no,意味着Docker不会主动重启这些容器,除非手动触发。

2. 容器进程运行方式问题(潜在可能)

如果Apache或PHP的Dockerfile未指定前台运行的主进程,容器启动后会因主进程退出而立即停止,表现为“未启动”。比如:

  • Apache镜像若默认用后台模式启动httpd,容器会在进程转入后台后直接退出;
  • PHP-FPM若未配置为前台运行,同样会导致容器启动后停止。

修复步骤

步骤1:为Apache和PHP添加重启策略

修改docker-compose.yml,给Apache和PHP服务添加restart: always(或按需选择unless-stopped,避免手动停止后被自动重启):

version: '3'

services:
    apache:
        build: ./docker/apache
        container_name: projectx_apache
        tty: true
        ports:
            - '443:443'
        depends_on:
            - php
            - mariadb
        volumes:
            - ./:/var/www/projectx/
        restart: always  # 添加重启策略

    php:
        build: ./docker/php
        container_name: projectx_php
        tty: true
        volumes:
            - ./:/var/www/projectx/
        restart: always  # 添加重启策略

    mariadb:
        # 原有配置保持不变
        build: ./docker/mariadb
        container_name: projectx_mariadb
        restart: always
        tty: true
        environment:
            MYSQL_ROOT_PASSWORD: docker
            MYSQL_DATABASE: projectx
            MYSQL_USER: docker
            MYSQL_PASSWORD: docker
        ports:
            - '3306:3306'

步骤2:验证Apache/PHP的Dockerfile进程配置

检查./docker/apache/Dockerfile和./docker/php/Dockerfile,确保主进程为前台运行:

  • Apache示例(基于官方httpd镜像):
    FROM httpd:latest
    # 你的其他配置(如复制配置文件、安装依赖等)
    CMD ["httpd-foreground"]  # 确保用前台命令启动
    
  • PHP-FPM示例(基于官方php-fpm镜像):
    FROM php:8.2-fpm
    # 你的其他配置(如安装扩展、复制配置等)
    CMD ["php-fpm"]  # 官方php-fpm镜像默认CMD为前台运行,自定义过需确认
    

步骤3:测试验证

  1. 手动启动所有容器,确认正常运行:
    docker-compose up -d
    
  2. 运行docker ps查看容器状态,确保Apache和PHP容器处于Up状态。
  3. 重启Docker Desktop,再次运行docker ps,确认三个容器均自动启动。

内容的提问来源于stack exchange,提问作者miltone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:35:16