一、TensorFlow Docker 要求
- 首先确保宿主机上已经安装了nvidia,可以用nvidia-smi 查看,如果没有的话可以用下面的方法去安装(Ubuntu系统安装方法)
安装nvidia
# 检查适合系统的NAVIDIA版本
nvidia-detector
# 安装nvidia的命令
apt-get install nvidia-driver-440
安装完成后需要重启启动系统才能生效
卸载nvidia
sudo apt-get --purge remove nvidia*
sudo apt-get --purge remove "*nvidia*"
sudo apt-get --purge remove "*cublas*" "cuda*"
sudo apt autoremove
- 请通过 docker -v 检查 Docker 版本。对于 19.03 之前的版本,需要使用 nvidia-docker2 和 --runtime=nvidia 标记;对于 19.03 及之后的版本,将需要使用 nvidia-container-toolkit 软件包和 --gpus all 标记。这两个选项都记录在上面链接的网页上。我这里是20.04版本的docker,所以使用第二种安装方式:
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
二、拉取tensorflow-gpu环境
# 后面可以换成自己需要的tensorflow版本
docker pull tensorflow/tensorflow:devel-gpu
# 拉取一个支持jupyter的tensorflow
docker pull tensorflow/tensorflow:latest-gpu-jupyter
# 运行tensorflow环境
docker run -itd --name[容器名字] -p 主机端口:容器端口 --gpus all --privileged=true tensorflow/tensorflow:[版本号]
三、pycharm中使用tensorflow环境
# 进入容器内部
docker exec -it [容器名] bash
apt-get update
apt-get install vim
apt-get install openssh-server
# 修改ssh连接配置,把PermitRootLogin prohibit-passwd改为PermitRootLogin yes
vim /etc/ssh/sshd_config
passwd root # 修改容器密码
service ssh start # 开启ssh服务
注意:如果pycharm中ssh可以连接,但是sftp无法连接的话,尝试如下操作
vim /etc/ssh/sshd_config
找到如下语句注释掉,然后添加如下语句
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
# 重启ssh 服务
service ssh restart