1. 安装 NVIDIA 显卡驱动
1.1 查看显卡硬件型号
终端输入:ubuntu-drivers devices
,获取适合于本机的驱动版本,可以看到如下界面:
推荐安装的版本号是:nvidia-driver-460 - distro non-free recommended
1.2 安装驱动
- 安装推荐版本:
sudo ubuntu-drivers autoinstall
- 安装其它版本:
sudo apt install nvidia-driver-465
(安装的是nvidia-driver-465版本)
1.3 验证成功
终端输入:nvidia-smi
, 结果如下:
2. 安装docker
2.1 卸载旧版本
命令行输入:
sudo apt-get remove docker docker-engine docker.io containerd runc
2.2 使用APT安装
- 由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
- 为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。
$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
- 向 source.list 中添加 Docker 软件源
$ sudo add-apt-repository \
"deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) \
stable"
- 更新 apt 软件包缓存,并安装 docker-ce
$ sudo apt-get update
$ sudo apt-get install docker-ce
- 启动 Docker CE
$ sudo systemctl enable docker
$ sudo systemctl start docker
- 建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。
$ sudo groupadd docker
- 将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
- 退出当前终端并重新登录,进行如下测试。测试 Docker 是否安装正确
$ docker run hello-world
3. pytorch环境
- 下载镜像,从pytorch/pytorch获取
docker pull pytorch/pytorch
- 运行gpu容器, Docker命令详解
docker19跑需要gpu的docker只需要加个参数–gpus all 即可(表示使用所有的gpu,如果要使用2个gpu:–gpus 2,也可直接指定哪几个卡:–gpus ‘“device=1,2”’)
# 使用所有GPU
$ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
# 使用两个GPU
$ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi
# 指定GPU运行
$ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
$ docker run --gpus '"device=UUID-ABCDEF,1"' nvidia/cuda:9.0-base nvidia-smi
运行一个在后台执行的容器,同时,还能用控制台管理:
$ docker run -i -t -d ubuntu:latest
自用:
docker run -it --gpus all -p 8022:22 --name="container_name" -v /data/my_data: /data ubuntu:latest
3. SSH设置
3.1 安装ssh
- 查看当前的ubuntu是否安装了ssh-server服务。默认只安装ssh-client服务
dpkg -l | grep ssh
上图是已经安装了,若没安装,则如下
- 安装ssh-server服务
sudo apt-get install openssh-server
- 确认ssh是否启动
ps -e | grep ssh
4. VSCode连接docker
4.1 准备
- 在服务器(宿主机)上(不是服务器的docker里)测试刚刚新建docker容器中哪个端口转发到了服务器的端口,这里设置了服务器中的8022端口转发到服务器中的docker容器的22端口
$ sudo docker port [your_container_name] 22
- 也可以直接通过SSH连接到远程docker:
$ ssh root@[your_host_ip] -p 8022
# 密码是你前面自己设置的
4.2 VSCode Remote连接
4.2.1 Remote - Containers连接
关于这部分本人没搞明白,由于安装了Remote - Containers这个插件,并且由于docker在本地,故打开VSCode就能直接使用容器的环境,通过ssh连接,只能后续再补。
4.2.2 Remote SSH 连接
由于暂时不需要真正的远程故没有真正实践过,具体实践可参考VSCode Remote 体验 | 远程Linux环境开发真香