配置开发环境 Docker安装和Setup

  • 深度学习框架:
    • Tensorflow(Google), MXNet(Amazon), Caffe, Torch ...

Tensorflow 安装

pip install tensorflow 安装非常容易

Docker 一站式环境

容器化技术的实现。简单来说是个轻量级虚拟环境。 使用Docker的话本地不需要安装Python, Jupyter notebook, tensorflow, etc. Docker将一切所需打包好了。

docker -v 查看版本

docker run tensorflow/tensorflow 以tensorflow这个image为模板构建容器

docker run -it tensorflow/tensorflow 在用Jupyter Notebook时可在命令行与容器里的参数一些交互

docker run -it -p 8888:8888 tensorflow/tensorflow 容器内部会在8888端口开一个服务。如果不映射的话,主机默认是无法访问的;因为容器与主机是隔离的。通过-p参数可以将服务映射到主机,通过主机可以访问。

docker ps 看服务进程状态

docker ps -a 可以看到目前不在运行的服务

docker start -i container_id 恢复服务

docker rm container_id 删除容器

docker stop container_id 停止容器

需将本地的目录映射到容器

docker run -it -p 8888:8888 -v ~/Documents/Study/DeepLearning101-002:/tensorflow tensorflow/tensorflow 冒号前是本地路径,冒号后是容器路径

出现的问题,可以通过在新建的Python notebook中以!ls /tensorflow 可以查看主机的文件,却没有办法在Host中显示文件

在Issues中参考了yiiina同学的问题,用下面的方式重新映射,可以解决了。 docker run -it -p 8888:8888 -v ~/Documents/Study/DeepLearning101-002:/notebooks/DeepLearning101-002 tensorflow/tensorflow

Docker image w/ Python3

参考kidult00同学的分享

Steps

  1. docker run tensorflow/tensorflow:latest-py3 可以(安装并)打开 Python3 环境 2. docker run -it -p 8888:8888 -v ~/Documents/Study/DeepLearning101-002:/notebooks/DeepLearning101-002 tensorflow/tensorflow:latest-py3 既可以在Python3环境下使用

  2. 使用docker rename practical_carson py2/py3 命令重命名两个环境,方便下次使用

Docker高级(relatively)

常见的一个误区,是不断用 docker run 重新建立 container。这样会消耗一些硬盘资源,长时间之后,在 docker ps -a 中会看到大量停止的 container。正确的方法应该是用 docker start -i container_id 来『启动』之前停止的 container。

用下面的命令可以清理掉所有处于终止状态的容器 docker container prune

容器变镜像

Docker 提供了一个命令,可以把自己当前运行的某个容器,变成一个新的镜像。

docker commit container_id image_name~ 注意要先 stop 这个 container,才能 commit 为一个 image。

docker commit 4c2b9c69b589 my_image

docker images

删除本地镜像

docker rmi [选项] <镜像1> [<镜像2> ...] 注意是rmi 不是 rm(删除容器)

bash启动

docker run -it -p 8888:8888 -p 6006:6006 -v ~/Documents/Study/DeepLearning101-002:/notebooks/DeepLearning101-002 my_image /bin/bash

tensorboard

!tensorboard --logdir="/tensorflow/tf" reload_interval=1 -- port 6006 另开一个Jupyter notebook 运行上述命令

Change Logs

  • 2017.10.14 创建
  • 2017.10.15 更新tensorflow本地目录映射
  • 2017.10.25 更新Python3环境
  • 2017.11.11 更新停止docker命令
  • 2017.11.29 更新Docker高级
  • 2017.12.02 更新tensorboard命令

results matching ""

    No results matching ""