0
点赞
收藏
分享

微信扫一扫

配置tensorflow2.8可供远程连接的docker容器

凌得涂 2022-04-16 阅读 27
python

配置tensorflow2.8可供远程连接的docker容器

1. 从docker hub上下载官方镜像

docker hub网站

docker pull tensorflow/tensorflow:2.8.0-gpu-jupyter
#或者
docker pull tensorflow/tensorflow:2.8.0

2. 运行镜像

  • 添加-it 参数交互运行
  • 添加-d参数后台运行
docker run -dit --rm tensorflow/tensorflow:2.8.0-gpu-jupyter bash
#或者
docker run -dit --rm tensorflow/tensorflow:2.8.0 bash

3. 进入docker容器内部

比如CONTAINER ID为:c96d56145259

docker exec -it c96d56145259 bash

3.1 查看Ubuntu系统版本

cat /etc/issue

在这里插入图片描述

3.2 给Ubuntu设置国内源

设置apt-get国内源是为了加快下载速度,访问镜像站页面,选择对应版本制作new_sources.list文件。
在这里插入图片描述
将new_sources.list文件粘贴于容器 /etc/apt/sources.list.d目录内。在Ubuntu下软件源的文件是/etc/apt/sources.list,而sourdces.list.d目录下的文件是第三方软件的源,可以分别存放不同的第三源地址,只需“扩展名”为list即可。

docker cp new_sources.list c96d56145259:/etc/apt/sources.list.d/new_sources.list 

在这里插入图片描述

3.3 给Ubuntu安装ssh服务

若下载的镜像内没有ssh,则pycharm远程连接访问不了(容器内没有22端口),需要给镜像配置ssh服务。

#安装ssh
apt-get update
apt-get install openssh-server
#查看ssh服务状态
service ssh status
#查看ssh版本
ssh -V

配置ssh服务的登陆密码,此处设置密码为123456,默认用户名为root

# 终端输入以下命令
passwd
# New password: 输入密码123456
# Retype new password:再次输入密码123456
# passwd: password updated successfully 表示密码设置成功

修改容器内ssh的配置文件/etc/ssh/sshd_config(注意,不是ssh_config)

# 修改如下两个地方
PermitRootLogin yes
UsePAM no

在这里插入图片描述

启动ssh服务

service ssh restart

在这里插入图片描述

3.4 给Ubuntu安装vim编辑器

apt-get update
apt-get install vim

3.5 使用pip安装OpenCV

  • opencv-python: 只包含opencv库的主要模块,一般不推荐安装。
  • opencv-contrib-python: 包含主要模块和contrib模块,功能基本完整,推荐安装。
pip3 install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple

验证是否可用。如果成功导入opencv包并打印相应opencv的版本就说明安装成功了。

import cv2
print(cv2.version)

如果报如下错误,其实就是新容器缺少依赖,安装一下就行了。
在这里插入图片描述

apt-get update
apt-get install libgl1-mesa-glx

3.6 使用pip安装jieba

中文分词

pip3 install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple

3.7 使用pip安装nltk

外文分词

pip3 install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple

4. 提交为新的镜像

比如CONTAINER ID为:c96d56145259

docker commit -a "dpc" -m "tensorflow2.8_add_ssh, passwd=123456" c96d56145259 dpc_tensorflow2.8_env:001

5. 启动容器并用PyCharm连接远程开发环境

docker run -dit --rm -p 5023:22 -v /home/tarena/hello/tf/ceshi:/tmp --name my_tf_env dpc_tensorflow_env:tensorflow2.8.0

5.1 启动容器

docker run -dit --rm -p 5023:22 --name my_tf_env dpc_tensorflow2.8_env:001

进入容器内,此时CONTAINER ID为:a048eb77fbaa

docker exec -it a048eb77fbaa bash

启动ssh服务

service ssh restart

5.2 PyCharm远程连接

启动容器后,用PyCharm专业版远程连接宿主机ip的5023端口。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
成功啦!
在这里插入图片描述

6. 几种docker启动的方法

#在tensorflow容器中打开bash shell会话
docker run -it --rm tensorflow/tensorflow:2.8.0 bash
#启动tensorflow容器的Jupyter Notebook服务器
docker run -it --rm -p 8888:8888 tensorflow/tensorflow:2.8.0-gpu-jupyter
#在tensorflow容器中运行宿主机上开发的程序
docker run -it --rm -v /home/tarena/hello/tf/ceshi:/tmp -w /tmp tensorflow/tensorflow:2.8.0 python ./tf_practice_2.py

检查宿主机上GPU是否可用

lspci |grep -i nvidia

验证nvidia-docker效果

docker run --gpus all --rm nvidia/cuda nvidia-smi
备注:
v2版本使用 --runtime=nvidia 替换 --gpus all
v1版本使用 nvidia-docker 替换 --gpus all

运行tensorflow的GPU映像

docker run --gpus all --it --rm tensorflow/tensorflow:2.8.0-gpu-jupyter bash

7. 验证tensorflow2.8是否可执行

import tensorflow as tf
res=tf.reduce_sum(tf.random.normal([10,10]))
print(res)

在这里插入图片描述

举报

相关推荐

0 条评论