Я пытаюсь создать виртуализованную среду разработки в Windows, используя Vagrant и Docker (как и многие люди). Проблема в том, что я не могу подключиться (или я не понимаю, как это сделать) из MySQL Workbench, работающего на моем ноутбуке Windows, к моей базе данных MySQL в контейнере Docker в Boot2Docker. Вот как я представляю себе связь:Подключитесь к MySQL в контейнере докера (Vagrant на Windows/VirtualBox)
MySQL верстаке -> 3306 -> Boot2Docker -> 3306 -> Докер -> MySql
Однако я не могу подключиться к БД из MySQLWorkbench. Я попытался подключиться к хосту Boot2Docker 10.0.2.15 на 3306 и tcp поверх ssh с помощью закрытого ключа окна Boot2Docker «.vagrant \ machines \ dockerhost \ virtualbox \ id»
Что я делаю неправильно/что у меня есть? неправильно понятый.
Мои Vagrantfile: ENV [ 'VAGRANT_DEFAULT_PROVIDER'] = 'Докер'
DOCKER_HOST_NAME = "dockerhost"
DOCKER_HOST_VAGRANTFILE = "./host/Vagrantfile"
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 3306, host: 3306
config.vm.define "mysql" do |v|
v.vm.provider "docker" do |d|
d.image = "mysql"
d.env = {
:MYSQL_ROOT_PASSWORD => "root",
:MYSQL_DATABASE => "dockertest",
:MYSQL_USER => "dockertest",
:MYSQL_PASSWORD => "docker"
}
d.ports =["3306:3306"]
d.remains_running = "true"
d.vagrant_machine = "#{DOCKER_HOST_NAME}"
d.vagrant_vagrantfile = "#{DOCKER_HOST_VAGRANTFILE}"
end
end
end
Мои хозяева/Vagrantfile (описание моего Boot2docker узла):
FORWARD_DOCKER_PORTS='true'
Vagrant.configure(2) do |config|
config.vm.provision "docker"
# The following line terminates all ssh connections. Therefore
# Vagrant will be forced to reconnect.
# That's a workaround to have the docker command in the PATH
#Clear any existing ssh connections
####NOTE: ps aux seems to give variable results depending on run -> process number can be ####first #or second causing provision to fail!!!
config.vm.provision "clear-ssh", type: "shell", inline:
"ps aux | grep 'sshd:' | awk '{print $1}' | xargs kill"
# "ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill"
config.vm.define "dockerhost"
config.vm.box = "dduportal/boot2docker"
config.vm.network "forwarded_port",guest: 8080, host: 8080
config.vm.provider "virtualbox" do |vb|
vb.name = "dockerhost"
end
end
Какое изображение Docker делает 'mysql' равным? Можете ли вы предоставить этот файл Docker или ссылку на изображение, которое вы используете на Docker Hub, пожалуйста? – ThatsNinja
@ThatsNinja Это официальный файл докеры MySQL: [link] (https://hub.docker.com/_/mysql/) – AgentCormac