docker hub网站
docker pull tensorflow/tensorflow:2.8.0-gpu-jupyter
#或者
docker pull tensorflow/tensorflow:2.8.0
docker run -dit --rm tensorflow/tensorflow:2.8.0-gpu-jupyter bash
#或者
docker run -dit --rm tensorflow/tensorflow:2.8.0 bash
比如CONTAINER ID为:c96d56145259
docker exec -it c96d56145259 bash
cat /etc/issue
设置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
apt-get update
apt-get install vim
若下载的镜像内没有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
service ssh restart
容器重启后,ssh服务并不能跟着重启,需要手动进入容器执行命令才可以重启。我们使用脚本的形式将ssh设为自启,只不过这个的这个脚本和我们使用Dockerfile的脚本不一样。
touch /root/start_ssh.sh
chmod +x /root/start_ssh.sh
vim /root/start_ssh.sh
#!/bin/bash
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/start_ssh.log
service ssh start >>/root/start_ssh.log
#service mysql start >>/root/star_mysql.log //其他服务也可这么实现
vim /root/.bashrc
# startup run
if [ -f /root/start_ssh.sh ]; then
. /root/start_ssh.sh
fi
注意. /root
中间有空格
原文链接:https://blog.csdn.net/qq_38603541/article/details/124028994
jupyter notebook在此容器内已经安装好了。如果没安装,使用下面命令安装。
pip3 install jupyter
#生成配置文件
jupyter notebook --generate-config
#使用ipython生成密码
In [1]: from notebook.auth import passwd
In [2]: passwd()
Enter password: 123456
Verify password: 123456
Out[2]: 'argon2:$argon2id$v=19$m=10240,t=10,p=8$blILhJPwrQi4cINiIoHIHw$ylvBE3m2OyIdCjnP5l/FPGvvLXu1SXTVrCeIFa1EsAw'
#去配置文件.jupyter/jupyter_notebook_config.py中修改以下参数
c.NotebookApp.notebook_dir = '/tf'
c.NotebookApp.ip = '*'
c.NotebookApp.open_browser = False
c.NotebookApp.allow_root = True
c.NotebookApp.port = 8888
c.NotebookApp.password = u'argon2:$argon2id$v=19$m=10240,t=10,p=8$blILhJPwrQi4cINiIoHIHw$ylvBE3m2OyIdCjnP5l/FPGvvLXu1SXTVrCeIFa1EsAw'
原文链接:https://blog.csdn.net/leng_yan/article/details/87208363
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
pip3 install scipy
pip3 install pandas
matplotlib在此容器内已经安装好了。如果没安装,使用下面命令安装。
pip3 install -U matplotlib
-U
参数等同于--upgrade
,表示如果已安装,则升级到最新版本。
pip3 install -U sklearn
-U
参数等同于--upgrade
,表示如果已安装,则升级到最新版本。
中文分词
pip3 install jieba -i https://pypi.tuna.tsinghua.edu.cn/simple
外文分词
pip3 install nltk -i https://pypi.tuna.tsinghua.edu.cn/simple
比如CONTAINER ID为:c96d56145259
docker commit -a "dpc" -m "tensorflow2.8_add_ssh, passwd=123456" c96d56145259 dpc_tensorflow2.8_env:001
-a
指定作者信息,-m
指定描述信息,新镜像名称为 dpc_tensorflow2.8_env:001
docker run -dit --rm -p 5023:22 -p 5024:8888 --name my_tf_env dpc_tensorflow2.8_env:001
--rm
表示容器停止时,会自动删除容器
启动容器后,用PyCharm专业版远程连接宿主机ip的5023端口。
启动docker的宿主机ip为192.168.18.192,宿主机5023端口映射docker内22端口
成功啦!
进入容器内(此时CONTAINER ID为:a048eb77fbaa)
docker exec -it a048eb77fbaa bash
在容器内运行以下命令,启动jupyter notebook服务
jupyter notebook
浏览器访问xxx.xxx.xxx.xxx:5024
(xxx.xxx.xxx.xxx为docker宿主机的ip地址)
输入密码:123456
#启动容器的同时,在容器中打开bash shell会话
docker run -it --rm tensorflow/tensorflow:2.8.0 bash
#启动容器的同时,在容器中启动Jupyter Notebook服务
docker run -it --rm -p 8888:8888 tensorflow/tensorflow:2.8.0-gpu-jupyter
#启动容器的同时,在容器中运行tf_practice_2.py程序
docker run -it --rm -v /home/tarena/hello/tf/ceshi:/tmp -w /tmp tensorflow/tensorflow:2.8.0 python ./tf_practice_2.py
备注:
tensorflow/tensorflow:2.8.0
是在docker hub网站上下载的镜像,没有自己添加配置新内容。-w
指定容器中的工作目录lspci |grep -i nvidia
#或者
lspci |grep -i vga
备注: -i
是忽略大小写;一第条命令是查看NVIDIA显卡,第二条命令是查看显卡,都可以用。
nvidia-smi
docker run --gpus all -it --rm tensorflow/tensorflow:2.8.0-gpu-jupyter bash
#或者
docker run --runtime=nvidia -it --rm tensorflow/tensorflow:2.8.0-gpu-jupyter bash
#或者
备注:
#添加nvidia-docker的源,否则安装nvidia-container-toolkit时会报错
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
#安装nvidia-container-toolkit
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
#重启docker
sudo systemctl restart docker
原文链接:https://blog.csdn.net/u013685264/article/details/123206768
原文链接:https://segmentfault.com/a/1190000038726907
docker run --gpus all --rm nvidia/cuda nvidia-smi
--runtime=nvidia
替换 --gpus all
nvidia-docker
替换 --gpus all
import tensorflow as tf
res=tf.reduce_sum(tf.random.normal([10,10]))
print(res)
tensorflow2.8官方文档网站,也可以选择查看不同版本的文档