Docker 一键帮你搞定数据开发环境( 三 )

from sklearn.cross_validation import cross_val_predict

  • from sklearn import linear_model
  • import matplotlib.pyplot as plt
  • %matplotlib inline

  • lr = linear_model.LinearRegression
  • boston = datasets.load_boston
  • y = boston.target

  • predicted = cross_val_predict(lr, boston.data, y, cv=10)

  • fig, ax = plt.subplots
  • ax.scatter(y, predicted)
  • ax.plot([y.min(), y.max()], [y.min(), y.max()], 'k--', lw=4)
  • ax.set_xlabel('Measured')
  • ax.set_ylabel('Predicted')
  • plt.show
  •  
    添加数据文件如果你想往开发环境中添加数据文件,你有三个选择 。第一个选择,就是将文件放在你之前创建用来存放notebook的文件夹中 。你放那里的任何文件将可以自动通过Jupyter notebook中访问 。
    第二种选择就是使用 docker cp命令 。docker cp可以从本地机器复制文件至容器中,反之亦然 。假设你想拷贝/hom/vik/data.csv文件至一个id为4greg24134的容器中,你可以输入下面的命令:docker cp/home/vik/data.csv4greg24134:/home/ds/notebooks 。这会将data.csv文件拷贝到容器中用于存放notebook的文件夹中 。当然,你可以选择将文件放到容器中的任何地方,但是把它们放在存放notebook的文件夹忠厚,你就可以轻松地通过Jupyter notebook访问这些文件了 。
    第三个选择就是使用Jupyter notebook首页右上方的 upload按钮 。这可以让你选择一个文件,并上传到容器中用于存放notebook的文件夹中 。
    不管你使用哪种方法,要想在Jupyter notebook中加载文件,需要按照类似下面的方式进行:
     
    1. import pandas
    2. data = https://www.isolves.com/it/cxkf/rongqi/2019-09-06/pandas.read_csv("data.csv")
     
    复制容器中的数据文件你可能会需要从容器中拷贝文件至本地机器 。最容易的办法就是把文件放置在 /home/ds/notebooks文件夹中,这样的话这些文件就会自动映像到本地机器 。
    另一种方法也就是利用 docker cp命令 。假设你想从id为4greg24314的容器中,把/home/ds/notebooks/data.csv文件拷贝至本地机器的/home/vik/文件夹中,你可以输入下面的命令:cp4greg24134:/home/ds/notebooks/data.csv/home/vik/data.csv
    最后一种方法就是使用Jupyter界面中的download选项 。在网页模式下点击一个不是notebook的文件,将会将其下载至本地 。如果你已经打开了一个notebook,那么可以先点击 File,然后选中downloadas就可以下载至本地 。
     
    安装更多的工具包如果你想在容器中安装更多的工具包,你可以通过正常的bash命令行命令就可以实现 。要想在容器中执行这些命令,你需要运行 dockerexec命令 。这个命令接受容器的id作为参数,以及一个期望运行的命令 。例如输入dockerexec-it4greg24134/bin/bash将会在编码为4greg24134的容器中开启一个shell命令提示符(shell prompt) 。-it选项确保我们在容器中打开了一个输入会话,并且可以输入命令 。
    在运行 dockerexec命令之后,你就会看到容器中的shell命令提示符(shell prompt)出现 。容器此时正通过一个名为ds的虚拟环境运行Python程序,这个虚拟环境已经是处于激活状态的 。
    接下来,只需要输入 pip install PACKAGE_NAME就可以安装其他的工具包 。例如,你可以使用pip install requests来安装requests 。
    当你希望退出容器的shell终端时,只需要输入 exit即可 。
     
    关闭docker容器在完成数据处理工作之后,你就可以通过 docker rm-f CONTAINER_ID来停止docker容器 。你应该输入之前获得的容器编码 。如果你忘了,你可以运行docker ps查看 。容器停止运行之后,notebooks会继续存放在你本地用于存放的文件夹中 。
     
    更进一步Docker镜像是通过Dockerfile创建的 。Dockerfile指定了镜像中应该安装的包和工具 。通过修改Dockerfile,你就可以改变镜像默认按照的包和工具 。
    如果你想在本文中所使用的镜像基础上做一定修改,可以向我们的Github仓库提交PR,这个仓库中包含了镜像的Dockerfile 。我们欢迎大家参与改善当前的镜像,或是添加其他安装了非Python包和工具的镜像 。


    推荐阅读