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

M1芯片执行docker-compose up -d时出现镜像租约未找到错误

问题

在M1芯片设备上执行docker-compose up -d启动Kafka、ZooKeeper、MongoDB等服务时,出现错误:

Error response from daemon: lease "moby-image-sha256:c2740b69f111bd711c867e337c12bab4b3d720c987e0d09549fe95e6badc6ba8": not found

相关配置文件如下:

docker-compose.yml

version: '3.9'

services:
  telikos-activityplanworkflow-service:
    container_name: telikos-activityplanworkflow-service
    build:
      context: .
      dockerfile: Dockerfile
    depends_on:
      ##----Dependent images-----------
      broker:
        condition: service_healthy
      mongo:
        condition: service_started
    ##---Ports-------------
    ports:
      - 8080:8080
    expose:
      - 8080
    ##---Environment variables------------
    environment:
      - server.port=8080
      - kafkabootstrapservers=broker:9092
  ##-----------------------------------------
  #----docker-images------------------------------------------------------


  zookeeper:
    image: confluentinc/cp-zookeeper:6.2.0
    hostname: zookeeper
    container_name: zookeeperap
    ports:
      - "2181:2181"
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000

  broker:
    image: confluentinc/cp-server:6.2.0
    hostname: broker
    container_name: brokerap
    depends_on:
      - zookeeper
    ports:
      - "29092:29092"
      - "9101:9101"
    environment:
      KAFKA_BROKER_ID: 1
      ALLOW_PLAINTEXT_LISTENER: "yes"
      KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181'
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:9092,PLAINTEXT_HOST://localhost:29092
      KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
      KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_JMX_PORT: 9101
      KAFKA_JMX_HOSTNAME: localhost
      KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081
      CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:9092
      CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1
      CONFLUENT_METRICS_ENABLE: 'true'
      CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous'
    healthcheck:
      test: nc -z localhost 29092 || exit -1
      start_period: 25s
      interval: 10s
      timeout: 10s
      retries: 10


  mongo:
    container_name: mongoap
    image: mongo
    ports:
      - 27017:27017
    environment:
      MONGO_INITDB_ROOT_USERNAME: admin
      MONGO_INITDB_ROOT_PASSWORD: password
    healthcheck:
      test: echo 'db.runCommand("ping").ok' | mongo mongo:27017/test --quiet
      start_period: 40s
      interval: 15s
      timeout: 10s
      retries: 5

  mongo-express:
    image: mongo-express
    restart: always
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_MONGODB_ADMINUSERNAME: admin
      ME_CONFIG_MONGODB_ADMINPASSWORD: password
      ME_CONFIG_MONGODB_URL: mongodb://admin:password@mongo:27017/

Dockerfile

FROM bellsoft/liberica-openjdk-alpine:17
RUN apk add curl
VOLUME /tmp
WORKDIR /app
COPY target/telikos-activityplanworkflow-service.jar /app/
ADD --chown=15000:15000 'https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar' opentelemetry-javaagent.jar
ENTRYPOINT ["java", "-javaagent:opentelemetry-javaagent.jar", "-jar", "telikos-activityplanworkflow-service.jar"]

解决方案

这个错误是Docker守护进程访问镜像租赁失败导致的,大概率和镜像缓存损坏、M1芯片ARM架构兼容性有关,可按以下步骤修复:

  • 清理Docker无效资源
    执行命令彻底清除未使用的镜像、容器、卷和缓存:

    docker system prune -a -f
    docker volume prune -f
    
  • 适配ARM架构镜像
    M1是ARM架构,部分旧版本Confluent镜像未适配。修改docker-compose.yml中的zookeeper和broker服务:

    zookeeper:
      image: confluentinc/cp-zookeeper:7.3.0 # 7.0+版本原生支持ARM
      platform: linux/amd64 # 若找不到ARM镜像,强制用amd64(依赖Rosetta2)
      # 其余配置不变
    
    broker:
      image: confluentinc/cp-server:7.3.0
      platform: linux/amd64
      # 其余配置不变
    
  • 重新构建本地服务镜像
    清理缓存后重新构建自己的服务镜像:

    docker-compose build --no-cache telikos-activityplanworkflow-service
    
  • 重启Docker服务
    在Docker Desktop菜单栏选择"Restart",彻底重启守护进程。

  • 重新启动服务
    完成以上步骤后执行:

    docker-compose up -d
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 16:45:19