首页 > 解决方案 > 为什么 docker compose 试图提取图像而不是创建新图像?

问题描述

我在我的 Ubuntu 服务器上重新安装了 docker,现在我正在尝试重建和运行一个 docker 容器,docker-compose但似乎在拉取时出现错误。我该如何解决这个问题,为什么会这样?

码头工人撰写:

version: "3.7"

networks:
  default:
    external: true
    name: network

services:
  mysql:
    ports:
      - "13306:3306"
    container_name: mysql
    #environment:
    #  - MYSQL_ROOT_PASSWORD=dbPass
    image: mysql

Dockerfile:

FROM mysql:8

ENV MYSQL_DATABASE db
ENV MYSQL_ROOT_PASSWORD=dbPass

COPY ./scripts/ /docker-entrypoint-initdb.d/

输入指令: docker-compose up --build

错误信息:

Pulling mydb (mysql:)...
ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

Continue with the new image? [yN]n
ERROR: pull access denied for mysql:, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

标签: dockerdocker-compose

解决方案


似乎当您删除了使用该卷创建的映像时,您也忘记了删除该卷。我认为有两种解决方案:

  1. 使用删除您的音量docker volume rm specific-volume-name(请参阅此处
  2. 通过添加-V选项使用新卷重新创建构建(请参见此处

推荐阅读