2017-02-22 12 views
0

У меня есть эта проблема с моим приложениемMysql гнездо отсутствует в моем приусадебном Docker контейнер

SQLSTATE [HY000] [2002] Не удается подключиться к локальному серверу MySQL через гнездо «/ вар/запустить/туздЫ /mysqld.sock'(2)

Я использую 2 Докер контейнеров для размещения моего Laravel 4.2 (я думаю: о) от этого build

Вот мой докер-compose.yml

web: 
image: shincoder/homestead:php5.6 
restart: always 
ports: 
    - "8000:80" # web 
    - "2222:22" # ssh 
    - "35729:35729" # live reload 
    - "9876:9876" # karma server 
volumes: 
    - ~/.composer:/home/homestead/.composer # composer caching 
    - ~/.gitconfig:/home/homestead/.gitconfig # Git configuration (access alias && config) 
    - ~/.ssh:/home/homestead/.ssh # Ssh keys for easy deployment inside the container 
    - ~/apps:/apps # all apps 
    - ~/apps/volumes/nginx/sites-available:/etc/nginx/sites-available # nginx sites (in case you recreate the container) 
    - ~/apps/volumes/nginx/sites-enabled:/etc/nginx/sites-enabled # nginx sites (in case you recreate the container) 
links: 
    - mariadb 
mariadb: 
    image: tutum/mariadb 
    restart: always 
    ports: 
     - "33060:3306" 
    environment: 
     MARIADB_USER: admin # cannot be changed (for info. only) 
     MARIADB_PASS: root 
    volumes: 
     - ~/apps/volumes/mysql:/var/lib/mysql # database files 

первый - homesteaddocker_web_1 с php5.6, а второй - homesteaddocker_mariadb_1. Я искал сокет mysql в homesteaddocker_web_1, а его нет, но я нашел его во втором контейнере (homesteaddocker_mariadb_1)

Так как я могу это исправить.

ответ

0

Контейнеры для докеров объединены в сеть с мостом.

Для одного контейнера, чтобы поговорить с другим, вы должны связать их: https://docs.docker.com/engine/userguide/networking/

Если контейнер должен иметь доступ к сетевым RESSOURCES в вашей локальной сети, вы можете использовать --network='host' в вашей команде докер выполнения.

+0

Я еще более смущен, я обновил свой вопрос с помощью файла для прикрепления докеров. – Getsuga

+0

Я думал, что вы пытаетесь получить доступ к базе данных, которая работает на вашем хосте. Итак, мой плохой. Теперь, как выглядит ваша строка подключения? Вы не должны выставлять порт mariadb (если вам не нужен он извне), и вы должны подключаться к mariadb: 3306 – MrE

+0

@MrEI может получить доступ к моей db через workbench mysql с этими учетными данными (хост: 127.0.0.1, порт: 33060, имя пользователя и пароль), и он отлично работает. его приложение laravel, которое не может подключиться к локальному серверу MySQL через сокет. – Getsuga

Смежные вопросы