install-docker

  1. 下载docker
  2. ubuntu
    1. docker-engine下载
    2. nv-container-toolkit [可选项]
  3. 优化体验
    1. 1. 开发者使用 docker 命令
    2. 2. 将下载的镜像移动到其他地方
    3. 3. 清理垃圾和缓存

下载docker

docker 现在有 docker-desktop 和 docker-engine ,服务器端下载 docker-engine即可,不要下载docker-desktop

并下载安装好 nv-crontainer-tookit

ubuntu

docker-engine下载

官方的下载教程

Ubuntu | Docker Docs

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

添加apt源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

下载最新版本

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

验证

 sudo docker run hello-world

nv-container-toolkit [可选项]

如果有NV显卡且服务需要调度显卡,可以下载NV-Container-Toolkit

下载并安装GPG密钥

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

启用实验性仓库

sudo sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list

更新下载源【可选项】

sudo apt-get update

按自己的版本需求来下载

export NVIDIA_CONTAINER_TOOLKIT_VERSION=1.17.8-1
  sudo apt-get install -y \
      nvidia-container-toolkit=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      nvidia-container-toolkit-base=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container-tools=${NVIDIA_CONTAINER_TOOLKIT_VERSION} \
      libnvidia-container1=${NVIDIA_CONTAINER_TOOLKIT_VERSION}

将nv-container-toolkit加载到docker 的runtime里

sudo nvidia-ctk runtime configure --runtime=docker

重启docker服务

sudo systemctl restart docker

优化体验

1. 开发者使用 docker 命令

开发用户也能使用docker命令

sudo usermod -aG docker $USER

刷新

newgrp docker

2. 将下载的镜像移动到其他地方

  1. 停止 Docker 服务:
sudo systemctl stop docker

Stopping ‘docker.service’, but its triggering units are still active:
docker.socket

sudo systemctl stop docker.socket
  1. 编辑 Docker 配置文件

文件在 /etc/docker/daemon.json

{
  "data-root": "/你的新目录/docker-data/docker"
}
  1. (可选)迁移已有数据:
sudo mv /var/lib/docker /你的新目录/docker-data

这个命令相当于将 /var/lib/docker 移动到了 /你的新目录/docker-data 下,所以 docker

有一个问题,mv命令太慢了而且没有进度提示,中途中断很不安全

采用 rsync 来解决

sudo rsync -aP /var/lib/docker/ ~/.docker-data/
  1. 重新启动服务
sudo systemctl start docker
  1. 检查
docker info | grep "Docker Root Dir"

# 检查下仓库
docker image list

image-20250924131238925

3. 清理垃圾和缓存

# 清理未使用的镜像、容器、网络和缓存
docker system prune -a

# 只清理未使用的镜像
docker image prune -a

# 清理未使用的容器
docker container prune

# 清理未使用的网络
docker network prune

# 清理未使用的卷
docker volume prune
github