не может использовать сокет mysql на хосте при использовании томов - PullRequest
1 голос
/ 20 мая 2019

Я иду отсюда:

Как запустить docker-compose с хост-сетью?

я понял, что mysql_connect использует сокеты, когда localhost введен как хост.В результате php на моей хост-системе не может найти сокет, потому что этот сокет находится в контейнере.

, когда я использую compose-docker, я могу прочитать эту

Версия:Сокет '5.6.44': порт /var/run/mysqld/mysqld.sock: 3306 MySQL Community Server (GPL)

так что, как мне показалось, логично сделать, это ввести на моемhost, конфигурация сокета mysql_connect в php, чтобы указывать на /var/run/mysqld/mysqld.sock

, но он находится в моем контейнере, поэтому он не может его найти.

В результате я попытался отобразить dir контейнера/var/run/mysqld к некоторому каталогу хоста, поэтому я могу затем использовать этот каталог сокетов хоста в моем php.ini на моем хосте.

Но:

при запуске я получаю:

Невозможно запустить сервер: привязка к сокету unix: разрешение запрещено

У вас уже есть другой сервер mysqld, работающий на сокете

, поэтому сопоставьте папку сокета каким-либо образомдает проблемы чтения с записью в контейнер докера.Есть ли какое-либо решение для этого?

мой файл yml это:

version: '3.3'
services:
  sciodb:
    container_name: sciodb
    image: mysql:5.6
    restart: always
    environment:
      MYSQL_DATABASE: 'db'
      # So you don't have to use root, but you can if you like
      MYSQL_USER: 'myuser'
      # You can use whatever password you like
      MYSQL_PASSWORD: 'test1234'
      # Password for root access
      MYSQL_ROOT_PASSWORD: 'test1234'
    ports:
      # <Port exposed> : < MySQL Port running inside container>
      - '3306:3306'
    expose:
      # Opens port 3306 on the container
      - '3306'
      # Where our data will be persisted
    volumes:
      - /home/myuser/nmyapp_db:/var/lib/mysql
      - /media/sf_vmwareshare:/var/vmwareshare
      - /home/myuser/nmyapp_socket:/var/run/mysqld
...