Я уже искал эту тему и нашел несколько тем. Основываясь на этих потоках, я выполнил следующие шаги. Но я столкнулся с проблемой.Как подключиться к MySQL, работающему на Docker с главной машины
В принципе, я хочу создать изображение докера для mysql, а затем подключиться к нему с моего хост-компьютера (Mac OS X).
Основываясь на сообщении this, мне нужно разделить сокет 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, пользователь корень, пароль пароль, база данных MyDB.
Связь прошла успешно!
Это не работает для меня. Я выполнил первую команду, в которой он создал изображение и контейнер. но когда я пытаюсь подключиться к mysql с моего хоста, используя dbvisualizer. он говорит «отказ связи». Мой хост является машиной Mac и не работает с mysql. поэтому мне нужно использовать dbvisualizer для подключения к mysql, запущенного внутри моего контейнера докеров. –
@KnowsNotMuch это потому, что вы используете MacOS с докер-машиной. Docker не запускается изначально на MacOS, проверьте мое редактирование для вопроса. – Rico