在 Docker、tensorflow、Windows 10 中使用本地文件系统和 MySQL 数据库
Working with local filesystem and MySQL database in Docker, tensorflow, Windows 10
我最近换了一台新的 (Windows 10) 电脑,需要学习我在 tensorflow 中进行的一些开发工作。 The only way that I can find to run tensorflow is through Docker,我使用 docker run -d -P engineero/tensorflow:df_build
(我的图像是通过修改主存储库的 Docker 文件以引入一些额外的依赖项而制作的)工作得很好(与链接的文章有点不同)。但是,我还有两个问题:
- 我不知道如何在我 运行 的 Docker 容器中使用和修改我现有的 jupyter 笔记本。
- 我不知道如何连接到我机器上 运行ning 的 MySQL 数据库。
对于 1 我已经尝试将 -v /c/Users/path/to/my/files:/tensorflow/my_files
添加到 docker run
命令,以及 /c/Users/path/to/my/files/*:/tensorflow/my_files
。对于这两个,我在我的 VM 中得到一个 /tensorflow/my_files
目录,但它是空的。我需要能够使用我的文件系统中的现有笔记本(和一些其他文件),并且我对这些文件所做的更改会保留在我的文件系统中。
对于2,我真的不知道。 MySQL 数据库当前正在 运行ning Windows localhost
,但如果我在我的脚本中引用 localhost
连接到数据库,它将尝试连接到守护进程(我认为),这是不一样的:docker-machine ip
不给我 127.0.0.1(从 Windows 的角度来看 localhost
)和 IP/port我必须连接到 jupyter notebook 的是我从 docker-machine ip
和 docker ps -l
.
获得的其他地址
如有任何帮助,我们将不胜感激。如果我完全在错误的页面上,我欢迎就正确的方法进行一些讨论。我现在正在研究 Docker documentation,但到目前为止我还没有找到解决方案。
编辑: 号码 2 已得到答复,但号码 1 仍然逍遥法外.
我没有在Windows上使用过Docker,所以我无法回答你的第一个问题。但是,我可以回答你的第二个问题。当您在 Windows/Mac 上 运行 Docker 时,它 运行 在虚拟机中,您可能已经知道了。当您调用 docker run
时,它会创建一个可以被视为另一个 VM 的容器(实际上不是 VM,但仅用于某些目的)。因此,当您从容器内部引用 localhost
时,它将尝试连接到该容器内部的 localhost
。为了克服这种情况,您应该使用 VM 的 IP 地址(Mac 为 192.168.99.100,我想 Windows 也是一样),无论您从 [=13] 获得什么 IP 地址=].如果你碰巧使用了Linux,你应该使用主机的实际IP地址。
我根据您的评论编辑了以下内容。仅当您在 Docker 中 运行ning MySQL 时,以上内容才成立。如果您尝试在本机连接到 MySQL 运行ning,您应该使用 PC 的实际 IP 地址(您可以在 [=26= 的命令提示符下使用 ipconfig
找到该地址]) 与 OS 无关。
不知道你对虚拟机的概念有多熟悉。 VM 就像单独的 PC,但不同之处在于它们 运行 在您的 PC 中。如果您想从您的 PC 与另一台 PC 通话,最简单的方法是使用外部 IP 地址。
p.s。您还应该允许 MySQL 接受远程连接。 This link 解释你是如何做到的。
我最近换了一台新的 (Windows 10) 电脑,需要学习我在 tensorflow 中进行的一些开发工作。 The only way that I can find to run tensorflow is through Docker,我使用 docker run -d -P engineero/tensorflow:df_build
(我的图像是通过修改主存储库的 Docker 文件以引入一些额外的依赖项而制作的)工作得很好(与链接的文章有点不同)。但是,我还有两个问题:
- 我不知道如何在我 运行 的 Docker 容器中使用和修改我现有的 jupyter 笔记本。
- 我不知道如何连接到我机器上 运行ning 的 MySQL 数据库。
对于 1 我已经尝试将 -v /c/Users/path/to/my/files:/tensorflow/my_files
添加到 docker run
命令,以及 /c/Users/path/to/my/files/*:/tensorflow/my_files
。对于这两个,我在我的 VM 中得到一个 /tensorflow/my_files
目录,但它是空的。我需要能够使用我的文件系统中的现有笔记本(和一些其他文件),并且我对这些文件所做的更改会保留在我的文件系统中。
对于2,我真的不知道。 MySQL 数据库当前正在 运行ning Windows localhost
,但如果我在我的脚本中引用 localhost
连接到数据库,它将尝试连接到守护进程(我认为),这是不一样的:docker-machine ip
不给我 127.0.0.1(从 Windows 的角度来看 localhost
)和 IP/port我必须连接到 jupyter notebook 的是我从 docker-machine ip
和 docker ps -l
.
如有任何帮助,我们将不胜感激。如果我完全在错误的页面上,我欢迎就正确的方法进行一些讨论。我现在正在研究 Docker documentation,但到目前为止我还没有找到解决方案。
编辑: 号码 2 已得到答复,但号码 1 仍然逍遥法外.
我没有在Windows上使用过Docker,所以我无法回答你的第一个问题。但是,我可以回答你的第二个问题。当您在 Windows/Mac 上 运行 Docker 时,它 运行 在虚拟机中,您可能已经知道了。当您调用 docker run
时,它会创建一个可以被视为另一个 VM 的容器(实际上不是 VM,但仅用于某些目的)。因此,当您从容器内部引用 localhost
时,它将尝试连接到该容器内部的 localhost
。为了克服这种情况,您应该使用 VM 的 IP 地址(Mac 为 192.168.99.100,我想 Windows 也是一样),无论您从 [=13] 获得什么 IP 地址=].如果你碰巧使用了Linux,你应该使用主机的实际IP地址。
我根据您的评论编辑了以下内容。仅当您在 Docker 中 运行ning MySQL 时,以上内容才成立。如果您尝试在本机连接到 MySQL 运行ning,您应该使用 PC 的实际 IP 地址(您可以在 [=26= 的命令提示符下使用 ipconfig
找到该地址]) 与 OS 无关。
不知道你对虚拟机的概念有多熟悉。 VM 就像单独的 PC,但不同之处在于它们 运行 在您的 PC 中。如果您想从您的 PC 与另一台 PC 通话,最简单的方法是使用外部 IP 地址。 p.s。您还应该允许 MySQL 接受远程连接。 This link 解释你是如何做到的。