运行命令docker-compose up -d enter image description here得到此错误:来自守护程序的错误响应:租赁“moby-image-sha 256:c2740 b69 f111 bd 711 c867 e337 c12 bab 4 b3 d 720 c987 e0 d 09549 fe 95 e6 badc 6 ba 8”:未找到
不知道这是什么意思。我在M1上,这是我的docker文件:
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文件在docker中运行Kafka和zookeeper。我不知道这是什么意思。
5条答案
按热度按时间b1payxdu1#
该错误看起来可能与Docker Desktop中添加的新containerd映像存储集成有关。
首先尝试按照docker文档中的步骤切换对此功能的支持:
1.导航至设置。
1.选择“实验特征”选项卡。
1.在Use containerd for pulling and storing images旁边,选中复选框。
如果更改解决了您的问题,请跟进roadmap issue 371,他们正在跟踪此新功能的进度。
q1qsirdb2#
一般来说,租约是containerd中的资源,由客户端创建,用于引用其他资源,如快照和内容,如this link中所述。
为了解决这个问题,你应该清理你的环境。因此,使用
docker rm <container>
命令删除容器,使用docker rmi <image>
删除映像,然后从containerd的根目录/var/lib/container
中删除租约。uttx8gqw3#
如果您已经成功提取了所需的Docker镜像,并验证了MongoDB和ZooKeeper正在运行,但您仍然面临服务在容器内运行的问题,则可能有其他因素导致问题。以下是您可以尝试的几个故障排除步骤:
检查日志:运行docker-compose logs查看所有容器的日志。查找任何错误消息或相关信息,以帮助确定服务容器的问题。
检查服务配置:在Docker Compose文件中仔细检查服务的配置。确保正确定义了必要的环境变量、卷和端口。使用depends_on指令确保服务依赖于所需的服务(例如MongoDB和ZooKeeper)。
验证容器状态:运行docker ps查看容器的状态。检查服务容器是否正在运行或是否已退出并出现错误。如果容器没有运行,您可以通过运行docker日志来专门检查容器的日志<container_name>。
验证容器的运行状况检查:如果您在Docker Compose文件中为服务容器定义了健康检查,请确保它们已正确配置。健康检查可以帮助确保容器在考虑完全运行之前处于健康状态。
确认服务的配置:确保服务的配置与容器环境兼容。例如,检查服务的端口是否正确暴露并Map到Docker Compose文件中的主机端口。
以交互方式运行服务容器:您可以尝试使用shell以交互方式运行服务容器来调试问题。使用docker-compose run <service_name>sh命令以交互模式启动容器,替换<service_name>为服务容器的名称。这允许您访问容器的shell并进一步调查。
在本地测试服务:如果可能,请尝试在容器环境外部本地运行服务,以验证其是否正常工作。这有助于确定问题是特定于容器设置还是存在于服务代码本身。
通过执行这些步骤,您应该能够收集有关问题的更多信息,并缩小问题的可能原因。
q1qsirdb4#
无法捕获其原因,因此切换到Rancher Desktop,问题得到解决
lhcgjxsq5#
您遇到的错误消息“Error response from daemon:租赁'moby-image-sha256:c2740b69f111bd711c867e337c12bab4b3d720c987e0d09549fe95e6badc6ba8':未找到”与Docker相关,表示拉取或检索Docker镜像时出现问题。错误中提到的图像未找到或无法访问。
以下是一些可以尝试的解决方案:
检查您的互联网连接:确保您的互联网连接稳定且运行正常。Docker需要一个有效的互联网连接来从存储库中提取图像。
手动提取所需的图像:如果您怀疑所需的图像没有被自动拉取,您可以尝试在运行docker-compose up之前手动拉取它们。例如,您可以分别运行以下命令:
这将下载必要的图像到您的系统中,然后您可以尝试再次运行docker-compose up。
清除Docker缓存:Docker有时可能会遇到与缓存相关的问题。您可以尝试清除Docker缓存,然后再次运行docker-compose。请记住,这将删除所有本地映像和容器,因此请确保备份任何重要数据。
升级Docker:如果您使用的是旧版本的Docker,请考虑升级到最新的稳定版本。较新的版本可能包含可以解决此问题的错误修复和改进。
验证Docker配置:确保您的Docker配置正确设置,并且您具有访问和拉取Docker镜像的必要权限。验证您的Docker安装,并确保它针对您的操作系统进行了正确配置。
通过执行这些步骤,您应该能够解决“未找到”错误,并使用docker-compose up成功运行Docker容器。