1. 前言
由于业务需要,又亲自上手在服务器上安装了Docker,并且需要使用GPU显卡。简单来说,就需要3个步骤,安装Docker Engine,然后将用户加入到Docker组里。如果有需要GPU的,需要安装nvidia-container-toolkit。(需要注意的是,以下操作均需要root权限,普通用户无法安装Docker)。
2. 安装Docker Engine
无论是有界面的还是无界面的系统,都可以安装Docker Engine。这里我们使用的是官方的安装步骤。
首先,应该使用以下命令更新apt包:
sudo apt-get update
如果要安装最新的版本,使用以下命令:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
最后,验证是否安装成功,使用以下命令:
sudo docker run hello-world
根据界面提示,就能够知道已经成功安装了。
2.1 直接安装提示报错
直接安装时,可能会出现下面的错误。
这时候需要执行2步。
第一步,添加源地址:
打开 /etc/apt/sources.list.d/docker.list 中添加下面内容
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
要能记住自己在改些什么,如果记不住,建议先备份该文件:
sudo cp /etc/apt/source.list /etc/apt/source.list.back
第二步,将公钥添加至服务器,即终端中输入:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys '7EA0A9C3F273FCD8'
然后再重复执行上面的安装步骤即可。
但是如果报错,还会引出下一个问题,那就是hello world拉取不到,这个问题会出现“Unable to find image ‘hello-world:latest’ locally”的错误,这时候就需要再修改一下镜像源到阿里云。
- 在/etc/docker下,新建daemon.json文件
sudo touch daemon.json
- 开daemon.json权限
sudo chmod 777 daemon.json
- 进入daemon.json输入镜像地址:
vim daemon.json
然后输入
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
并保存退出即可。
- 重启
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker
- 然后再执行hello world。
sudo docker run hello-world
3. 将用户加入Docker组
首先创建Docker组,一般来说,都已经创建完毕了。
sudo groupadd docker
然后将目标用户加入到docker组中,其中$USER可以替换为任何用户名,默认为当前用户。
sudo usermod -aG docker $USER
接着,重新登陆或者使用以下命令更新组:
newgrp docker
最后使用目标用户进行测试:
docker run hello-world
4. 安装nvidia-container-toolkit
首先执行命令:
curl https://get.docker.com | sh \
&& sudo systemctl --now enable docker
然后,设置GPG密钥:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
最后,执行以下命令完成安装:
sudo apt-get update
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker
5. ChatGPT给出的建议
5.1 安装Docker和设置用户
在Ubuntu 20.04上安装Docker步骤如下:
更新Ubuntu系统:$ sudo apt update
安装Docker需要的依赖:$ sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加Docker官方GPG key:$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
添加Docker源:$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
更新Ubuntu软件包索引:$ sudo apt update
安装Docker:$ sudo apt install docker-ce docker-ce-cli containerd.io
将当前用户加入docker用户组:$ sudo usermod -aG docker ${USER}
重新登录使更改生效:$ su - ${USER}
现在用户可以使用Docker了,可以使用$ docker run hello-world
检查是否安装成功。
5.2 安装nvidia-docker2
- 获取nvidia-docker2 GPG密钥:
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
- 在您的包管理器中添加nvidia-docker2存储库:
$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
- 更新系统软件包列表:
$ sudo apt-get update
- 安装nvidia-docker2:
$ sudo apt-get install -y nvidia-docker2
- 重启Docker服务:
$ sudo systemctl restart docker
完成这些步骤后,就可以使用nvidia-docker2来启动具有GPU支持的Docker容器了。
5.3 使用Docker
如果你已经安装了Docker,可以使用下面的步骤开始使用Docker。
- 搜索Docker镜像:使用命令
docker search <image_name>
在Docker Hub上搜索您想使用的镜像。 - 下载Docker镜像:使用命令
docker pull <image_name>
下载您选择的镜像。 - 运行Docker容器:使用命令
docker run --rm -it <image_name> /bin/bash
运行一个Docker容器,并在其中执行操作。
您可以通过阅读Docker文档和教程,以及通过使用Docker命令来了解更多关于如何使用Docker的信息。请注意,使用Docker需要一定的技术知识和经验。
5.4 帮助文档
您可以在Docker官方网站上访问Docker文档和教程:
Docker文档:https://docs.docker.com/
Docker教程:https://docs.docker.com/learn/
您还可以在网上搜索其他权威的Docker教程和教程,以便了解如何使用Docker,以及如何在您的项目中使用Docker。如果您对Docker没有太多经验,建议您从入门教程开始学习,然后再尝试更复杂的应用。