> 技术文档 > ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker


文章目录

    • docker 安装
      • 0.卸载旧版本
      • 1.设置Docker的apt存储库
      • 2.安装Docker软件包
      • 3.配置加速地址:设置registry mirror
      • 4.通过运行hello-world映像来验证安装成功
    • nvidia-container-toolkit 安装
      • 0.先决条件
      • 1.配置生产存储库
      • 2.从存储库中更新包装列表
      • 3.安装NVIDIA容器工具包
      • 4.验证安装
      • 5.配置docker
    • 常用命令
      • 服务相关
      • 镜像相关
      • 容器相关
      • 数据卷相关

docker 安装

官网安装教程:https://docs.docker.com/engine/install/ubuntu/

0.卸载旧版本

查看系统版本

lsb_release -a

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

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

1.设置Docker的apt存储库

# Add Docker\'s official GPG key:sudo apt-get updatesudo apt-get install ca-certificates curlsudo install -m 0755 -d /etc/apt/keyringssudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.ascsudo 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/nullsudo apt-get update

2.安装Docker软件包

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

查看 docker 版本

docker -v

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

3.配置加速地址:设置registry mirror

sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-\'EOF\'{ \"registry-mirrors\": [ \"https://alzgoonw.mirror.aliyuncs.com\", \"https://do.nark.eu.org\", \"https://dc.j8.work\", \"https://docker.m.daocloud.io\", \"https://dockerproxy.com\", \"https://docker.mirrors.ustc.edu.cn\", \"https://docker.nju.edu.cn\" ]}EOF

重载地址&重启docker&查看状态&查看配置的加速地址是否成功

sudo systemctl daemon-reload #重要sudo systemctl restart dockersystemctl status dockerdocker info

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker
ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker
ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

4.通过运行hello-world映像来验证安装成功

sudo docker run hello-world

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

查看是否成功拉取hello-world镜像

docker images

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

nvidia-container-toolkit 安装

官网手册:
概述 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/index.html
安装 https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#

NVIDIA Container Toolkit是库和实用程序的集合,使用户能够构建和运行GPU加速容器。目前包括:
ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

0.先决条件

需要已经安装Ubuntu 匹配的NVIDIA GPU驱动程序,以及docker。

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

√ 国内库(推荐)

curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \\&& curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\sed \'s#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g\' | \\sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

2.从存储库中更新包装列表

sudo apt-get update

3.安装NVIDIA容器工具包

sudo apt-get install -y nvidia-container-toolkit

4.验证安装

nvidia-container-cli --version

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

5.配置docker

允许 Docker 容器访问和利用 NVIDIA GPU 资源,从而支持 GPU 加速。
(1)给Docker安装\"显卡驱动\",让Docker容器能直接调用NVIDIA显卡

sudo nvidia-ctk runtime configure --runtime=docker

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

(2)重启docker

systemctl restart docker

(3)修改 /etc/docker/daemon.json 文件,将 NVIDIA 容器运行时的配置信息写入 Docker 的配置文件中。

cat /etc/docker/daemon.json \"runtimes\": { \"nvidia\": { \"args\": [], \"path\": \"nvidia-container-runtime\" } }

(4)查看docker 支持的运行时有没有nvidia

docker info | grep Runtimes

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

(5) 启动容器运行 nvidia-smi 查看效果

sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi

–runtime=nvidia : 指定容器运行时
–gpus all:请求所有可用的 GPU 资源
nvidia-smi:查看 NVIDIA GPU 的状态信息,包括 GPU 使用率、内存使用情况等

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker
ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

常用命令

服务相关

sudo systemctl start docker # 启动服务sudo systemctl stop docker # 停止docker服务sudo systemctl enable docker # 设置开机自启sudo systemctl restart docker # 重启服务sudo systemctl status docker # 检查服务状态sudo systemctl enable docker # 设置开机启动docker服务

镜像相关

docker images# 查看本地所有的镜像docker search <镜像名称> # 从网络中查找需要的镜像

容器相关

docker ps # 查看正在运行的容器docker ps -a # 查看所有容器(包括已停止的)docker run <参数> # 创建并启动容器,仅只用运行一次(每次docker run都会生成新容器)docker start 容器名称/容器id # 启动容器,每次开机后启动docker exec -it 容器名称/容器id bash # 进入 容器docker stop 容器名称/容器id # 停止容器docker rm 容器名称/容器id # 删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除。docker inspect 容器名称/容器id # 查看容器信息

ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker
ubuntu 22.04 docker 安装&使用_ubuntu22.04 安装docker

数据卷相关

  • 数据卷是宿主机中的一个目录或文件
  • 当容器目录和数据卷目录绑定后,对方的修改会立即同步
  • 一个数据卷可以被多个容器同时挂载
  • 一个容器也可以挂在多个数据卷

创建启动容器时,使用-v参数设置数据卷

docker run … -v 宿主机目录(文件):容器目录(文件)…