gpt4 book ai didi

mysql - 连接到 Docker 容器中的 MySQL(Windows/VirtualBox 上的 Vagrant)

转载 作者:行者123 更新时间:2023-11-29 11:29:01 32 4
gpt4 key购买 nike

我正在尝试使用 Vagrant 和 Docker 在 Windows 上创建虚拟化开发环境(就像很多人一样)。我遇到的问题是,我无法从 Windows 笔记本电脑上运行的 MySQL Workbench 连接(或者我不明白如何连接)到 Boot2Docker 中 Docker 容器中的 MySQL DB。这就是我可视化连接的方式:

MySQL工作台 -> 3306 -> Boot2Docker -> 3306 -> Docker -> MySql

但是我无法从 MySQLWorkbench 连接到数据库。我尝试使用 Boot2Docker 框“.vagrant\machines\dockerhost\virtualbox\id”的私钥通过 ssh 连接到 3306 上的 Boot2Docker 主机 10.0.2.15 和 tcp

我做错了什么/我误解了什么。

我的 Vagrant 文件: ENV['VAGRANT_DEFAULT_PROVIDER'] = 'docker'

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 主机之间转发。解决方案是移动端口转发配置行:

config.vm.network "forwarded_port", guest: 3306, host: 3306

进入 docker 主机 Vagrant 文件。然后,Windows 主机上的 MySQL Workbench 可以连接到 localhost:3306。

关于mysql - 连接到 Docker 容器中的 MySQL(Windows/VirtualBox 上的 Vagrant),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732278/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com