【问题标题】:How can I get an interactive shell inside a Google datalab container?如何在 Google datalab 容器中获取交互式 shell?
【发布时间】:2017-03-29 05:51:12
【问题描述】:

我需要在使用 docker 运行的 Google datalab 容器中安装其他软件。可以使用%%bash ... 运行 bash 命令。但是,这不允许交互。所以,我需要容器内的交互式外壳。

【问题讨论】:

    标签: docker jupyter-notebook google-cloud-datalab


    【解决方案1】:

    如果您需要修改 Datalab 镜像,您可以像 @Rambler 建议的那样基于它编写一个新的 Dockerfile,或者您可以 fork 自己的版本,Datalab 是 open source

    【讨论】:

      【解决方案2】:

      您可以尝试通过以下方式以交互模式运行容器:

      docker run -it --name=<container_name> <image>:<tag> /bin/bash
      

      如果容器已经在运行,你可以利用docker exec

      docker exec -it <container_name> /bin/bash
      

      【讨论】:

      • 它有效,但似乎当我这样做时,更改不是永久性的。这是一些信息:ifconfig.it/wordpress/2015/05/docker-installsw
      • 是的,您必须在更改后提交容器才能保留它们。相反,您也可以使用所需软件的安装命令编写 Dockerfile,然后生成更新的图像。这里 datalab 的图像将成为基础图像。
      • 似乎也没有在正在运行的容器中进行更改,因为当我从运行在云中的 jupyter notebook 中查看文件系统时,它保持不变。
      • Weird.You 可以只运行一个简单的测试,例如。 ,只需在正在运行的容器中创建一个文件,提交它,然后重新运行它。该文件应该存在于那里。
      • 真的很奇怪。要访问笔记本,我必须启动 docker 容器。我可以访问容器并看到文件系统中的更改。但是当我使用 jupyter notebook 时,文件系统看起来没有变化!?!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 2015-11-01
      • 2011-03-12
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多