Ошибка DOCKER: отказано в доступе к coffeeteareadb, репозиторий не существует или может потребовать «входа в систему docker»

#java #postgresql #spring-boot #docker #docker-compose

#java #postgresql #весенняя загрузка #docker #docker-compose

Вопрос:

У меня есть Spring MVC приложение, в которое я хочу добавить Docker . Я создал image , настроил Docker , но приложение Docker не хочет запускаться. В приложении, которое я использую Spring Boot , и PostgresSQL в базе данных.

Dockerfile:

 FROM openjdk:11
ADD build/libs/Coffeetearea-0.0.1-SNAPSHOT.jar Coffeetearea-0.0.1-SNAPSHOT.jar
#EXPOSE 8080:8080
ENTRYPOINT ["java", "-jar", "Coffeetearea-0.0.1-SNAPSHOT.jar"]
 

docker-compose.yml:

 version: '3.1'
services:
  app:
    container_name: coffeetearea
    image: coffeeteareaimage
    build: ./
    ports:
      - "8080:8080"
    depends_on:
      - coffeeteareadb
  coffeeteareadb:
    image: coffeeteareadb
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_PASSWORD=pass123
      - POSTGRES_USER=postgres
      - POSTGRES_DB=coffeetearea
 

application.propertyes:

 #Databse
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://coffeeteareadb:5432/coffeetearea
spring.datasource.username=postgres
spring.datasource.password=pass123
spring.jpa.generate-ddl=false
spring.jpa.hibernate.ddl-auto=validate
 

МОИ ШАГИ в ТЕРМИНАЛЕ:

 C:UsersvartanyanIdeaProjectsCoffeetearea>docker-compose up
Creating network "coffeetearea_default" with the default driver
Pulling coffeeteareadb (coffeeteareadb:)...
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] y
Pulling coffeeteareadb (coffeeteareadb:)...
ERROR: pull access denied for coffeeteareadb, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
 

Комментарии:

1. Для контейнера базы данных вы имеете в виду использовать стандартный образ, например image: postgres:13 ?

2. как я могу это посмотреть? это все, что у меня есть, я больше ничего не добавлял / не писал

Ответ №1:

Ошибка означает, что Docker не может найти изображение с именем coffeeteareadb локально или на https://hub.docker.com / . Если ваше изображение находится в частном репозитории (это означает, что кто-то из вашей группы уже создал его), вы должны сначала войти в Docker в этот репозиторий. Хотя для частного репозитория ваше имя изображения должно выглядеть как URL: registry.example.com/image-name:tag .

Если вы хотите coffeeteareadb использовать обычную базу данных PostgreSQL, вы, вероятно, захотите изменить image here:

   coffeeteareadb:
    image: postgres:13  # https://hub.docker.com/_/postgres
 

Если вы новичок в Docker, an image похож на исполняемый или двоичный файл, а a container — это что-то вроде запущенного процесса этого исполняемого файла. An image состоит из нескольких дополнительных слоев данных: приложения, зависимостей, некоторой базовой конфигурации и т. Д. При запуске образа, который вы создаете container . Контейнер является экземпляром изображения. Он отличается от изображения тем, что помимо простого приложения в нем есть некоторая информация о том, как его запустить (какие порты сопоставлять, какие тома монтировать и т. Д.). Может быть много контейнеров, использующих один и тот же образ. Поэтому, когда вы попросили выбрать изображение, вам в основном нужно указать, какое приложение вы хотите использовать. Docker будет искать его локально и на хабе, загружать его и создавать из него контейнер. Если вы хотите создать свой собственный образ, вам нужен файл Dockerfile (см. Эту ссылку https://docs.docker.com/engine/reference/builder / ).

Ответ №2:

Похоже, что ваше изображение (coffeeteareadb) не существует на dockerhub, поэтому docker не может его извлечь. Создайте его локально, как coffeeteareaimage (build: buildpath). Или используйте образ PostgreSQL, который находится на dockerhub (изображение: postgresql: последняя версия).