ubuntu docker tensorflow
参照tensorflow官网中docker安装进行docker和tensorflow相关的安装。
docker安装
参照docker官网中ubuntu安装安装Docker Engine。
基本没遇到错误。执行下面的代码确认安装结果。
$ sudo docker run hello-world
安装NVIDIA支持
参照NVIDIA官网安装nvidia-docker2。
执行下面代码时需要梯子。
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
最后验证时的代码官网是:
sudo docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi
需要根据自己的系统硬件调整,我这里输入的是:
sudo docker run --rm --gpus all nvidia/cuda:10.0-base nvidia-smi
tensorflow镜像部署
镜像下载
官网镜像下载太慢,使用阿里云的镜像库。
参考链接aliyun docker
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://zpb8clkj.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
这时执行docker pull提示下面的错误:
Got permission denied while trying to connect to the Docker daemon socket at unix
参照链接中pranavdaa 的回答执行下面的代码:
sudo chmod 666 /var/run/docker.sock).
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。
执行下面的代码将当前用户添加至docker用户组
sudo gpasswd -a $USER docker #将当前用户添加至docker用户组
newgrp docker #更新docker用户组
此时执行下面的代码可以快速下载镜像
docker pull tensorflow/tensorflow:latest-gpu-jupyter
下载完成后执行下面代码验证
docker run --gpus all -it --rm tensorflow/tensorflow:latest-gpu \
python -c "import tensorflow as tf; print(tf.reduce_sum(tf.random.normal([1000, 1000])))"