Я сделал несколько изменений в Vagrantfile и docker -compose.yml и попробовал его с помощью клиента db с моего хоста vagrant. Это сработало. Я не использую mysql или mysql из командной строки. поэтому я не могу сказать, как использовать это решение из командной строки, но оно должно быть очень простым. Вам нужно изменить ссылку на хост mysql на localhost: 3306.
Изменения в моем файле Vagrant (добавлен ip 192.168.50.110, я думаю, что вы можете удалить его после тестирования и сопоставить порт 3306).
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/bionic64"
config.vm.provision "docker"
config.vm.network "private_network", ip: "192.168.50.110",
virtualbox__intnet: true
config.vm.network :forwarded_port, guest: 80, host: 8000
config.vm.network :forwarded_port, guest: 3306, host: 3306
# config.vm.provision :shell, path: "bootstrap.sh"
end
docker -compose.yml (снова сопоставленный порт 3306).
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
ports:
- "3306:3306"
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
Из моего клиента БД, работающего на ноутбуке (бродячий хост), использовались следующие настройки:
host - localhost
port - 3306
db/user/password - wordpress/wordpress/wordpress
Я могу подключиться к mysql с моего хоста osx, работая как docker изображение под бродягой. завершение работы контейнера docker и соединение не установлено.