windows - 在 Docker、tensorflow、Windows 10 中使用本地文件系统和 MySQL 数据库

标签 windows docker windows-10 docker-machine

我最近切换到一台新的(Windows 10)计算机,需要进行一些我在 tensorflow 中进行的开发。 The only way that I can find to run tensorflow is through Docker ,我用 docker run -d -P engineero/tensorflow:df_build 工作得很好(与链接的文章有点不同) (我的图像是通过修改主 repo 的 Dockerfile 以引入一些额外的依赖项来制作的)。但是,我还有两个问题:

  • 我无法弄清楚如何在我运行的 Docker 容器中使用和修改我现有的 jupyter 笔记本。
  • 我不知道如何连接到我在我的机器上运行的 MySQL 数据库。

  • 对于 1 我已尝试添加 -v /c/Users/path/to/my/files:/tensorflow/my_filesdocker run命令,以及 /c/Users/path/to/my/files/*:/tensorflow/my_files .对于这两个,我得到一个 /tensorflow/my_files我的虚拟机中的目录,但它是空的。我需要能够使用我的文件系统中的现有笔记本(和一些其他文件),并将我对这些文件所做的更改保留在我的文件系统上。

    对于 2 , 我真的不知道。 MySQL 数据库当前在 Windows 上运行 localhost , 但如果我引用 localhost在我连接数据库的脚本中,它将尝试连接到守护进程(我认为),这不一样:docker-machine ip没有给我 127.0.0.1(从 Windows 的角度来看 localhost),我必须为 jupyter notebook 连接的 IP/端口是我从 docker-machine ip 获得的其他地址和 docker ps -l .

    任何帮助将不胜感激。如果我完全在错误的页面上,我会欢迎一些关于正确方法的讨论。我正在处理 Docker documentation现在,但到目前为止我还没有找到解决方案。

    编辑:号码 2 已回答,但号码 1 仍然逍遥法外。

    最佳答案

    我没有在 Windows 上使用过 Docker,所以我无法回答你的第一个问题。不过,我可以回答你的第二个问题。当您在 Windows/Mac 上运行 Docker 时,它会在您可能已经知道的 VM 中运行。当您调用 docker run ,它创建了一个可以被视为另一个 VM 的容器(实际上不是 VM,但仅用于某些目的)。因此,当您引用 localhost从容器内部,它将尝试连接到 localhost在那个容器里面。为了克服这种情况,您应该使用虚拟机的 IP 地址(Mac 为 192.168.99.100,我猜 Windows 也一样),无论您从 docker-machine ip 获得的 IP 地址是什么。 .如果你碰巧使用 Linux,你应该使用主机的实际 IP 地址。

    我根据您的评论编辑了以下内容。仅当您在 Docker 中运行 MySQL 时,上述内容才是正确的。如果您尝试连接到 native 运行的 MySQL,您应该使用 PC 的实际 IP 地址(您可以在 Windows 的命令提示符下使用 ipconfig 找到该地址),而与操作系统无关。

    我不确定您对虚拟机的概念有多熟悉。 VM 就像单独的 PC,但不同之处在于它们在您的 PC 中运行。如果您想从您的 PC 与另一台 PC 通信,最简单的方法是使用外部 IP 地址。
    p.s.您还应该允许您的 MySQL 接受远程连接。 This link解释你是怎么做的。

    关于windows - 在 Docker、tensorflow、Windows 10 中使用本地文件系统和 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37758247/

    相关文章:

    python - 2017年如何在Windows+XAMPP上安装mod_wsgi

    docker - : Starting container process caused "exec:\"/docker-entrypoint. sh\": permission denied"错误

    docker - skaffold dev返回错误错误400:请求中指定的用户项目无效。

    c++ - 加载共享库时出错 : jvm. dll

    windows-10 - 如何离线安装适用于 Windows 10 的 D3D11 SDK Layers

    wpf - Windows 10 中的正宗 Windows 7 主题?

    windows - 64 位大型 malloc

    windows - Windows 可执行包装器的 CreateProcess 用法?

    windows - 您会为 Windows 推荐什么 HTTP 流量监视器?

    azure - 使用 args 在 azure 容器注册表中运行容器