Search code examples
spring-bootdockerminio

Docker Issue : Cannot run the container (repository does not exist or may require 'docker login')


After I devise a Spring Boot project with the usage of MinIo, I tried to run it in Docker but I have an issue.

Here is my docker-compose.yaml file

version: '3.8'

services:
  minio:
    image: minio/minio:latest
    container_name: minio
    environment:
      MINIO_ACCESS_KEY: "minioadmin"
      MINIO_SECRET_KEY: "minioadmin"
    volumes:
      - ./data:/data
    ports:
      - 9000:9000
      - 9001:9001

I firstly run this command docker-compose up -d. Then I run docker ps -a to check if it is located in container. After that, I run this command docker run <container-id> (a07fdf1ef8c4), here is a message shown below.

Unable to find image 'a07fdf1ef8c4:latest' locally
docker: Error response from daemon: pull access denied for a07fdf1ef8c4, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

I also run this option shown below nothing changed.

C:\Users\host\IdeaProjects\SpringBootMinio>docker run -p 9000:9000 9001:9001 minio/minio:latest
Unable to find image '9001:9001' locally
docker: Error response from daemon: pull access denied for 9001, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.

Even if I run the command docker login, I couldn't fix it.

How can I solve it out?


Solution

  • 1st Error

    docker run <container-id> - That is not how you run a container with Docker. When you run docker-compose up -d, it already starts the containers; in this case it's MinIO.

    The docker run function requires an image name as the argument. So when you do docker run <container-id>, it tries to find an image with the container ID, which doesn't exist.

    So when you do docker-compose up -d, it starts minio. You do not need to start it again.

    2nd Error When you run docker run -p 9000:9000 9001:9001 minio/minio:latest, you are basically saying that the image name is 9001:9001. But no such image exists. If you want to expose another port, just do docker run -p 9000:9000 -p 9001:9001 minio/minio:latest. For every single port you want to expose, just do -p and enter the port mapping.