@AmeRain

Как получить доступ к MySQL установленном внутри Docker контейнера?

Пытаюсь получить доступ к MySql установленном внутри Docker контейнера
Выдается ошибка Access denied for user 'root'@'172.18.0.5' (using password: YES)
Здесь мой docker-compose.yml file:
version: '2'
services:
  #  The Application
  app:
    image: app
    working_dir: /var/www
    volumes:
      - /var/www/storage
    env_file: '.env'
    environment:
      - "DB_HOST=database"
      - "REDIS_HOST=cache"

  # The Web Server
  web:
    image: web
    ports:
      - "8000:80"

  # The Database
  database:
    image: mysql:5.7.19
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      - MYSQL_DATABASE="dev"
      - MYSQL_USER="root"
      - MYSQL_PASSWORD="root"
      - MYSQL_ROOT_PASSWORD="root"
    ports:
      - "3306:3306"


  # redis
  cache:
    image: redis:3.0-alpine

volumes:
  dbdata:

собираю и запускаю все командами:
docker build -t app -f app.dockerfile .
build -t web -f web.dockerfile .
docker-compose -f docker-compose.yml up -d

Проект, в котором находится файл написан на Laravel. ОС Windows 10
  • Вопрос задан
  • 1946 просмотров
Пригласить эксперта
Ответы на вопрос 3
pxz
@pxz
✔ Совет: Вам помогли? Отметьте ответы решением.
Так у Вас проброшены порты (3306), подключайтесь к localhost:3306.

Но если локально уже работает мускуль, то поменяйте порт в compose-файле.

Вот тут можно почитать как посмотреть проброшенные порты:
https://docs.docker.com/engine/reference/commandli...
Ответ написан
planc
@planc
app:
    depends_on:
        - "database"


если юзать свои образы, то вместо image: можно использовать build: путь к папке с dockerfile:
docker-compose build для создания
Ответ написан
Комментировать
@scor2k
Для начала проверьте с хоста доступ до БД. Вам писали выше что порт 3306 должен быть доступен на localhost. Если доступ с паролем вашего docker-compose работает, тогда смотрите настройки сервиса `app`, возможно вы там используете не правильные данные для подключения.

Ну и для сервиса `app` добавьте параметр
links:
 - "database"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы