CentOS8安装Docker

CentOS8使用Docker部署Streamlit
部署环境:

  • Linux:Linux 操作系统,以 CentOS Stream 8 为例。
  • Docker:容器管理,以Docker CE 24.0.7为例。

安装

卸载旧版本

1
2
3
4
5
6
7
8
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

卸载后将保留 /var/lib/docker 的内容(镜像、容器、存储卷和网络等),也删除。

1
rm -rf /var /lib/docker

更新yum源

1
yum makecache

设置docker仓库

1
2
3
4
5
6
7
8
9
sudo yum install -y yum-utils

sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

安装docker-ce
```bash
yum install docker-ce docker-ce-cli containerd.io

查看docker版本

1
docker -v

启动docker

1
systemctl start docker

检查docker是否安装成功,打印出:Hello from Docker! 说明安装成功。

1
docker run hello-world

设置docker开机自启动

1
systemctl enable docker

Ubuntu20.04安装Docker

自动安装

在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 –mirror 选项使用国内源进行安装:

1
2
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker 的稳定(stable)版本安装在系统中。

安装 NVIDIA Docker

但是上面的脚本没有安装 NVIDIA Docker 支持, 如果运行需要GPU的容器会报如下错误:

1
2
3
4
5
6
7
root@dell:~# docker run -it --rm --gpus all --net host -v /home/dell/lqm/aigc/Diffusion/Difftraj chengdu:/difftraj difftraj:2.0.1-py3.10.11-cuda11.8.0-ubuntu22.04
docker: Error response from daemon: could not select device driverwith capabilities: [gpu]
如果要在 Docker 容器中使用 NVIDIA GPU 需要安装 NVIDIA Docker 支持,即 nvidia-docker,我们还需要进行如下操作:
1. 确保nvidia驱动和docker安装好,下面两行命令能够成功输出。
```bash
nvcc --version
docker
  1. 添加 NVIDIA Docker 仓库:
  • 对于 Ubuntu/Debian 系统,运行以下命令:
    1
    2
    3
    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  • 对于 RHEL/CentOS 系统,运行以下命令:
    1
    2
    distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
    curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | sudo tee /etc/yum.repos.d/nvidia-docker.repo
  1. 安装 NVIDIA Docker:
  • 更新包管理器的索引并安装 NVIDIA Docker 包:
    • 对于 Ubuntu/Debian:
      1
      2
      sudo apt-get update
      sudo apt-get install -y nvidia-docker2
    • 对于 RHEL/CentOS:
      1
      2
      sudo yum clean expire-cache
      sudo yum install -y nvidia-docker2
  1. 重新启动 Docker 服务:
  • 安装完成后,您需要重启 Docker 服务来应用更改:
    1
    sudo systemctl restart docker
  1. 验证安装
  • 运行一个测试容器以验证 NVIDIA Docker 是否安装正确:
    1
    docker run --rm --gpus all nvidia/cuda:11.0.3-base nvidia-smi
  • 这个命令会运行一个具有 CUDA 支持的容器,并在容器内执行 nvidia-smi。如果一切正常,将看到 GPU 的信息。
    图片

手动安装

首先卸载旧版本,确保卸载任何冲突的软件包(也就是旧版本的Docker组件)。Ubuntu在apt仓库中提供了Docker软件包的非官方分发版,该版本由Ubuntu负责维护和发行,必须先卸载这些软件包,然后才能安装Docker Engine的官方版本。

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

卸载了这四个包:

  • docker.io
  • docker-compose
  • docker-doc
  • podman-docker

添加Docker官方仓库的GPG key

1
2
3
4
5
6
7
sudo install -m 0755 -d /etc/apt/keyrings

apt install curl

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

apt安装Docker Engine

1
2
3
sudo apt-get update

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

配置Docker仓库

1
2
3
4
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

接着安装NVIDIA Docker,见自动安装部分。

Windows安装Docker Desktop

Win10

下载:Install Docker Desktop on Windows
参考:【全面详细】Windows10 Docker安装详细教程

Win11-家庭版

  1. 没有Hyper-V内置虚拟机,需要手动安装
    Win11家庭版找不到hyper-v|Win11家庭版没hyper-v虚拟机_白云一键重装系统
  2. 还需要安装wsl(适用于linux的windows子系统)
    Windows Docker Desktop安装教程及踩坑记录
    以管理员的身份打开CMD或PowerShell运行以下命令
    1
    netsh winsock reset
    更新wsl
    1
    wsl --update
    在控制面板-程序-启用或关闭windows功能勾选上以下三个内容
    图片
    Docker Desktop 设置容器资源限制
    有时候Docker容器里的大模型会出现爆内存等问题,可能是容器资源设置了限制。