使用docker方式启动 tensorflow:1.13.1,每个容器是一个环境隔离,大家互不影响。如需其他版本的 tensorflow , 请联系 @lijiawei
注意
JUPYTER_PORT
是启动的 jupyter notebook 的外网访问端口,为防止端口冲突,请改为为自己分配的端口,自己的端口为64000 + 自己的vnc端口号
。例如我的vnc端口为 11,所以下面我设置为 64011PWD
是自己的 tensorflow 数据存储目录TENSORFOWA_NAME
是自己的tensorflow系统名。例如,我的用户名为 lipengfei ,我的tensorflow系统名为 tensorflow_lipengfei_py3
修改完后根据需要,按照如下方式启动自己的tensorflow系统。
PWD=~/tensorflow_dir
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
JUPYTER_PORT="64011"
docker run --restart=always --runtime=nvidia -d -p $JUPYTER_PORT:8888 -v $PWD:/tmp -w /tmp -m 8g --memory-swap 16g --name $TENSORFOWA_NAME tensorflow/tensorflow:1.13.1-gpu-py3
docker exec -it $TENSORFOWA_NAME bash
退出后如需再次进入,在命令行中输入:
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker exec -it $TENSORFOWA_NAME bash
暂停自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker stop $TENSORFOWA_NAME bash
重启自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker start $TENSORFOWA_NAME bash
PWD=~/tensorflow_dir
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
JUPYTER_PORT="64011"
docker run --restart=always --runtime=nvidia -d -p $JUPYTER_PORT:8888 -v $PWD:/tmp -w /tmp -m 8g --memory-swap 16g --name $TENSORFOWA_NAME tensorflow/tensorflow:1.13.1-gpu
docker exec -it $TENSORFOWA_NAME bash
退出后如需再次进入,在命令行中输入:
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker exec -it $TENSORFOWA_NAME bash
重启自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker start $TENSORFOWA_NAME bash
PWD=~/tensorflow_dir
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
JUPYTER_PORT="64011"
docker run --restart=always --runtime=nvidia -d -p $JUPYTER_PORT:8888 -v $PWD:/tmp -w /tmp -m 8g --memory-swap 16g -m 8G --memory-swap 16G --name $TENSORFOWA_NAME tensorflow/tensorflow:1.13.1-py3
docker exec -it $TENSORFOWA_NAME bash
退出后如需再次进入,在命令行中输入:
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker exec -it $TENSORFOWA_NAME bash
暂停自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker stop $TENSORFOWA_NAME bash
重启自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker start $TENSORFOWA_NAME bash
PWD=~/tensorflow_dir
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
JUPYTER_PORT="64011"
docker run --restart=always --runtime=nvidia -d -p $JUPYTER_PORT:8888 -v $PWD:/tmp -w /tmp -m 8g --memory-swap 16g --name $TENSORFOWA_NAME tensorflow/tensorflow:1.13.1
docker exec -it $TENSORFOWA_NAME bash
退出后如需再次进入,在命令行中输入:
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker exec -it $TENSORFOWA_NAME bash
暂停自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker stop $TENSORFOWA_NAME bash
重启自己的tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker start $TENSORFOWA_NAME bash
启动后,使用 ip:JUPYTER_PORT
即可远程访问 自己的tensorflow系统中的 jupyter notebook 。例如我的vnc端口为 11,
- 25服务器访问 : http://50125.hnbdata.cn:64011/
- 26服务器访问 : http://50126.hnbdata.cn:64011/
如需输入登录密码,进入自己的tensorflow系统,执行
jupyter notebook list
即可获得登录 token
如果不再使用tensorflow系统,可以删除自己的tensorflow系统。但数据将会一直保留在自己设置的 tensorflow 数据存储目录 会一直保留。
python3 删除tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker stop $TENSORFOWA_NAME && docker rm $TENSORFOWA_NAME
python2 删除tensorflow系统
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker stop $TENSORFOWA_NAME && docker rm $TENSORFOWA_NAME
如长期保存自己的当前tensorflow系统环境的软件环境配置可以使用:
python3
TENSORFOWA_NAME="tensorflow_$(whoami)_py3"
docker commit \
--author "$(whoami)" \
--message "我修改了什么内容" \
$TENSORFOWA_NAME \
$TENSORFOWA_NAME:v2
python2
TENSORFOWA_NAME="tensorflow_$(whoami)_py2"
docker commit \
--author "$(whoami)" \
--message "我修改了什么内容" \
$TENSORFOWA_NAME \
$TENSORFOWA_NAME:v2
语法为: docker commit [选项] <容器ID或容器名> [<仓库名>[:<标签>]]
- nvidia/cuda hub . https://hub.docker.com/r/nvidia/cuda
- NVIDIA Container Runtime for Docker . https://github.com/NVIDIA/nvidia-docker
- Docker 安装TensorFlow . https://tensorflow.google.cn/install/docker
- tensorflow hub . https://hub.docker.com/r/tensorflow/tensorflow/tags?page=5