Docker安装Emby时使用独立显卡
编辑前言:在安装
NVIDIA Container Toolkit
工具包前需要先安装好显卡驱动。若有疑问请查看官方文档
一、安装NVIDIA Container Toolkit
工具包
使用 Apt 安装
1. 配置生产存储库:
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/stable/deb/nvidia-container-toolkit.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
2. (可选)将存储库配置为使用实验性软件包:
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list
3. 安装 NVIDIA Container Toolkit
软件包:
# 更新源
sudo apt-get update
# 安装工具包
sudo apt-get install -y nvidia-container-toolkit
使用 Yum 或 Dnf 安装
1. 配置生产存储库:
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
2. (可选)将存储库配置为使用实验性软件包:
sudo yum-config-manager --enable nvidia-container-toolkit-experimental
3. 安装 NVIDIA Container Toolkit
软件包:
sudo apt-get install -y nvidia-container-toolkit
使用 Zypper 安装
1. 配置生产存储库:
sudo zypper ar https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
2. (可选)将存储库配置为使用实验性软件包:
sudo zypper modifyrepo --enable nvidia-container-toolkit-experimental
3. 安装 NVIDIA Container Toolkit
软件包:
sudo zypper --gpg-auto-import-keys install -y nvidia-container-toolkit
二、配置NVIDIA Container Toolkit
您安装了受支持的容器引擎(Docker、Containerd、CRI-O、Podman)
您安装了 NVIDIA Container Toolkit
1. 配置 Docker
1.1 使用以下命令配置容器运行时:nvidia-ctk
sudo nvidia-ctk runtime configure --runtime=docker
该命令将修改主机上的文件。 该文件已更新,以便 Docker 可以使用 NVIDIA Container Runtime。nvidia-ctk/etc/docker/daemon.json
1.2 重新启动 Docker 守护程序:
sudo systemctl restart docker
2. 无根模式
要为在无根模式下运行的 Docker 配置容器运行时, 请执行以下步骤:
2.1 使用以下命令配置容器运行时:nvidia-ctk
nvidia-ctk runtime configure --runtime=docker --config=$HOME/.config/docker/daemon.json
2.2 重启无根 Docker 守护程序:
systemctl --user restart docker
2.3 使用以下命令进行配置:/etc/nvidia-container-runtime/config.toml
sudo nvidia-ctk
sudo nvidia-ctk config --set nvidia-container-cli.no-cgroups --in-place
3. 配置 containerd(适用于 Kubernetes)
3.1 使用以下命令配置容器运行时:nvidia-ctk
sudo nvidia-ctk runtime configure --runtime=containerd
该命令将修改主机上的文件。 该文件将更新,以便 containerd 可以使用 NVIDIA Container Runtime。nvidia-ctk/etc/containerd/config.toml
3.2 重新启动 containerd:
sudo systemctl restart containerd
4. 配置 containerd(用于 nerdctl)
无需额外配置。 你可以只运行 ,有 root 或不有 root。 您无需为 Kubernetes 运行上述命令。
nerdctl run --gpus=allnvidia-ctk
另请参阅 nerdctl 文档
5. 配置 CRI-O
5.1 使用以下命令配置容器运行时:nvidia-ctk
sudo nvidia-ctk runtime configure --runtime=crio
该命令将修改主机上的文件。 该文件已更新,以便 CRI-O 可以使用 NVIDIA Container Runtime。nvidia-ctk/etc/crio/crio.conf
5.2 重新启动 CRI-O 守护程序:
sudo systemctl restart crio
三、验证是否成功
1. 本机使用nvidia-smi
命令查看显卡驱动信息
# 查看显卡驱动
nvidia-smi
2. 确认CUDA驱动版本后,从 DockerHub 下载对应版本的镜像
3. 查看docker容器是否能正确驱动显卡(需自行替换景象版本)
docker run --gpus all nvidia/cuda:11.0-base nvidia-smi
四、安装Emby
1. Docker Run安装
docker run -d \
--name emby \
--runtime=nvidia \
--gpus all \
-v /path/to/your/emby/config:/config \
-v /path/to/your/media:/mnt/media \
-p 8096:8096 \
emby/embyserver
2. docker-composer安装
version: '3.8'
services:
emby:
image: emby/embyserver:latest # 使用适当的 Emby 镜像
container_name: emby
runtime: nvidia # 使用 NVIDIA 运行时
environment:
- NVIDIA_VISIBLE_DEVICES=all # 选择所有可用的 GPU
volumes:
- /path/to/your/emby/config:/config # Emby 配置文件挂载
- /path/to/your/media:/mnt/media # 媒体文件挂载
ports:
- "8096:8096" # 映射端口
restart: unless-stopped # 容器崩溃时自动重启
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all # 或者选择特定数量的 GPU,如 0
capabilities: [gpu]
- 0
-
分享