Docker 安装与使用

参考官网链接安装

1. 安装 docker

1.1 卸载旧版本

卸载 docker 之前,移除所有的容器、镜像、卷及网络:

docker container stop $(docker container ls -aq)
docker system prune -a --volumes

卸载旧版本 docker :

sudo apt purge docker-ce
sudo apt autoremove

1.2 安装依赖并添加 GPG key

 sudo apt update
 sudo apt install curl apt-transport-https ca-certificates curl gnupg-agent software-properties-common
 # Add the official GPG key of Docker
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

1.3 添加 软件源

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

1.4 更新 ubuntu 源列表并安装 docker

安装最新版:

 sudo apt-get update
 sudo apt-get install docker-ce docker-ce-cli containerd.io

安装自定义版本:

sudo apt update
apt list -a docker-ce
sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io

1.5 验证是否正常运行

# 测试 docker 是否运行正常
sudo docker run hello-world
# hello-world出错可更换docker源
sudo gedit /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"], 
}

1.6 添加当前用户到用户组

将登录用户加入 docker 用户组中,每次使用 docker 不需要再 使用 sudo

# 添加 docker 用户组
sudo groupadd docker
# 将登录用户加入到 docker 用户组中
sudo gpasswd -a $USER docker
# 更新用户组
newgrp docker
# 测试 docker 命令是否可以正常使用
docker ps
# 重启电脑
sudo reboot

2. 安装 nvidia-docker

2.1 卸载旧版本

 docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
 sudo apt-get purge -y nvidia-docker

2.2 添加源

 curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
 distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
 curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
 sudo apt-get update

2.3 安装Nvidia-docker2

sudo apt-get install -y nvidia-docker2
 # 重启 docker daemon:
sudo service docker restart

2.4 验证是否安装完成:

 docker run --runtime=nvidia --rm nvidia/cuda:11.0-base nvidia-smi

2.5 报错及解决方案

2.5.1 找不到runtime

提示未知的nvidia runtime:

docker: Error response from daemon: Unknown runtime specified nvidia.

etc/docker/daemon.json中添加如下内容,其中registry-mirrors 是docker的国内源,在 1.5 部分添加

sudo gedit /etc/docker/daemon.json
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"], 
  "insecure-registries": ["registry.test.cn"],
  "max-concurrent-downloads": 10,
  "log-driver": "json-file",
  "log-level": "warn",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  },
  "live-restore": true,
  "metrics-addr": "0.0.0.0:9323",
  "default-runtime": "nvidia",
  "experimental": true,
    "runtimes": {
        "nvidia": {
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

2.5.2 找不到nvidia/cuda的版本

去官网hub.docker.com找到cuda对应的版本,并使用docker pull xxx的指令下载对应版本:
在这里插入图片描述

在这里插入图片描述

本机下载是11.7.1-base-ubuntu20.04版本,使用如下指令可正常输出:

docker run --runtime=nvidia --rm nvidia/cuda:11.7.1-base-ubuntu20.04 nvidia-smi

在这里插入图片描述

3. 卸载 docker

删除 docker 相关软件,及其安装时自动安装的所有包

 sudo apt-get autoremove docker docker-ce docker-engine  docker.io  containerd runc

查看 docker 其他没有被卸载的包

dpkg -l | grep docker
sudo apt autoremove docker-ce-*

删除docker的相关配置&目录

sudo rm -rf /etc/systemd/system/docker.service.d
sudo rm -rf /var/lib/docker

确定 docker 卸载完毕

docker --version

4. docker 常用指令

docker  images    # 查看所有镜像
docker  ps        # 查看运行中的容器
docker  ps  -a    # 查看所有容器
docker  start 容器ID    # 启动容器
docker  restart 容器ID    # 重启容器
docker  stop 容器ID    # 停止容器
docker  exec  -it 容器ID  /bin/bash    # 进入容器
exit    # 退出容器
docker  build  -f  Dockerfile  -t 镜像名:V1     # 构建镜像
docker  run -d  -p 端口 镜像名:V1    # 创建并运行容器
docker  rm 容器ID   # 删除容器
docker  image  rm  镜像ID    # 删除镜像
docker  cp  XXX.jar  容器ID:/opt     # 复制jar到容器中:
docker load xxx.tar.gz    # 加载容器
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值