Izy
@Izy
Учу

Docker_composer, как подключится к бд mysql запущенной в контейнере?

есть вот такой docker-compouser.yml :
version: '3.3'

services:

    db:
      image: mysql
      ports:
        - 3306:3306
      volumes:                         #  оговорюсь сразу ,убрать запись/оставить
        - ./db:/var/lib/mysql      #  не как не влияет на ошибку
      restart: always
      environment:
        MYSQL_DATABASE: db_ferst
        MYSQL_USER: root
        MYSQL_PASSWORD: root
        MYSQL_ROOT_PASSWORD: root


    adminer:
        image: adminer
        restart: always
        ports:
            - 8080:8080


я запускаю все командой: sudo docker-compose up -d
Adminer запускается а вот MySQL нет.
команда : sudo docker-compose ps показывает :
21ccfde5a2a4        adminer             "entrypoint.sh doc..."   3 minutes ago       Up 3 minutes                    0.0.0.0:8080->8080/tcp   dockermysql_adminer_1
a402abedb0f6        mysql               "docker-entrypoint..."   3 minutes ago       Restarting (1) 29 seconds ago                            dockermysql_db_1


а команда sudo docker-compose logs db выкидывает кучу ошибок (и это повторяется 10 раз):
db_1  | Initializing database
db_1  | 2017-10-02T20:18:00.901998Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
db_1  | mysqld: Can't create/write to file '/tmp/ib5L9l18' (Errcode: 13 - Permission denied)
db_1  | 2017-10-02T20:18:00.904876Z 0 [ERROR] InnoDB: Unable to create temporary file; errno: 13
db_1  | 2017-10-02T20:18:00.904883Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
db_1  | 2017-10-02T20:18:00.904889Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
db_1  | 2017-10-02T20:18:00.904892Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
db_1  | 2017-10-02T20:18:00.904896Z 0 [ERROR] Failed to initialize plugins.
db_1  | 2017-10-02T20:18:00.904899Z 0 [ERROR] Aborting


и мне кажется что ошибка где то с правами доступа.
по итогу когда заходим на 127.0.0.1:8080 то в админку бд естественно не заходим:

59d2aafb975eb393265999.png

Ну и хотелось бы понять почему у меня такое происходит, и где я косячу((.
Цель же мой разобраться с docker и научится им пользоваться.
З.Ы. заранее благодарен
  • Вопрос задан
  • 3734 просмотра
Решения вопроса 1
Izy
@Izy Автор вопроса
Учу
Вобщем общими силами хороших людей разобрался. Новичкам на будущее: по хорошему обязательно указывайте версии программ , последние версии иногда могут не работать, затем не всегда нужно использовать restart: always , он не обязателен (я где то на форуме в коментах видел что его нужно использовать) , и подключатся нужно как не через lockalhost а db (в моем случае) .

Создайте группу docker, если она еще не существует:
sudo groupadd docker
Добавьте себя, или любого другого пользователя, который будет работать с Docker в эту группу:
sudo gpasswd -a ${USER} docker
Перезапустите Docker демона:
sudo service docker restart
Перезапустите систему

И пользуйтесь

docker-compose logs _name_

ну и вот мой рабочий yaml файл
version: '3.3'

services:

    db:
      image: mysql:5.6
      ports:
        - 3306:3306
      volumes:
        - ./db:/var/lib/mysql   
      environment:
        MYSQL_DATABASE: db_ferst
        MYSQL_USER: root
        MYSQL_PASSWORD: root
        MYSQL_ROOT_PASSWORD: root


    adminer:
        image: adminer
        ports:
            - 8080:8080
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы