Я уже искал эту тему и нашел несколько потоков. Основываясь на этих потоках, я выполнил следующие шаги. Но я столкнулся с проблемой.
В принципе, я хочу создать образ docker для mysql, а затем подключиться к нему с моей главной машины (Mac OS X).
Основываясь на этой почте, мне нужно разделить сокет unix mysql с хостом. к этому я сделал следующие шаги
1. Start docker quick terminal
2. docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
3. docker exec -it mysql bash
4. mysql -uroot -p
5. create database MyDB;
6. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
7. exit;
8. mkdir /Users/abhi/host
9. docker run -it -v /host:/shared mysql/mysql-server:latest
Теперь я получаю сообщение об ошибке
MacBook-Pro:~$ docker run -it -v /Users/abhi/host:/shared mysql/mysql-server
error: database is uninitialized and password option is not specified
You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD
Но вы видите, что я предоставил пароль и инициализировал мою базу данных.
Все, что я хочу, это то, что с моего хост-компьютера я могу подключиться к базе данных mysql, запущенной внутри докера.
EDIT:: ----- решение, которое работало ------
Спасибо RICO. Наконец, шаги, которые работали для меня, - это
1. Start docker quick terminal
2. docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latest
3. docker exec -it mysql bash
4. mysql -uroot -p
5. create database MyDB;
6. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
7. exit;
8. docker-machine env default
Используйте IP-адрес, полученный на шаге 8. Порт 3306, пользователь root, пароль - пароль, база данных - MyDB.
Соединение выполнено успешно!