下载docker
docker 现在有 docker-desktop 和 docker-engine ,服务器端下载 docker-engine即可,不要下载docker-desktop
并下载安装好 nv-crontainer-tookit
ubuntu
docker-engine下载
官方的下载教程
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. 将下载的镜像移动到其他地方
- 停止 Docker 服务:
sudo systemctl stop docker
Stopping ‘docker.service’, but its triggering units are still active:
docker.socket
sudo systemctl stop docker.socket
- 编辑 Docker 配置文件
文件在 /etc/docker/daemon.json
{
"data-root": "/你的新目录/docker-data/docker"
}
- (可选)迁移已有数据:
sudo mv /var/lib/docker /你的新目录/docker-data
这个命令相当于将 /var/lib/docker 移动到了 /你的新目录/docker-data 下,所以 docker
有一个问题,mv命令太慢了而且没有进度提示,中途中断很不安全
采用 rsync 来解决
sudo rsync -aP /var/lib/docker/ ~/.docker-data/
- 重新启动服务
sudo systemctl start docker
- 检查
docker info | grep "Docker Root Dir"
# 检查下仓库
docker image list
3. 清理垃圾和缓存
# 清理未使用的镜像、容器、网络和缓存
docker system prune -a
# 只清理未使用的镜像
docker image prune -a
# 清理未使用的容器
docker container prune
# 清理未使用的网络
docker network prune
# 清理未使用的卷
docker volume prune