ubuntu 22.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
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 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
2.安装Docker软件包
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
查看 docker 版本
docker -v
3.配置加速地址:设置registry mirror
sudo mkdir -p /etc/docker
sudo 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 docker
systemctl status docker
docker info
4.通过运行hello-world映像来验证安装成功
sudo docker run hello-world
查看是否成功拉取hello-world镜像
docker images
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加速容器。目前包括:
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
5.配置docker
允许 Docker 容器访问和利用 NVIDIA GPU 资源,从而支持 GPU 加速。
(1)给Docker安装"显卡驱动",让Docker容器能直接调用NVIDIA显卡
sudo nvidia-ctk runtime configure --runtime=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
(5) 启动容器运行 nvidia-smi 查看效果
sudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi
–runtime=nvidia : 指定容器运行时
–gpus all:请求所有可用的 GPU 资源
nvidia-smi:查看 NVIDIA GPU 的状态信息,包括 GPU 使用率、内存使用情况等
常用命令
服务相关
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 # 查看容器信息
数据卷相关
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定后,对方的修改会立即同步
- 一个数据卷可以被多个容器同时挂载
- 一个容器也可以挂在多个数据卷
创建启动容器时,使用-v参数设置数据卷
docker run … -v 宿主机目录(文件):容器目录(文件)…