docker和nvidia-docker离线安装(GPU)

docker和nvidia-docker离线安装(GPU)

下载安装文件

官方地址:https://download.docker.com/linux/static/stable/x86_64/
下载自己合适的版本,这里我是下载docker-20.10.9.tgz

解压安装

简单粗暴一点:

tar zxf docker-20.10.9.tgz
mv docker/* /usr/bin/
rm -rf docker*.tgz

文件配置

进入/etc/systemd/system/目录,并创建docker.service文件:

cd /etc/systemd/system/
touch docker.service

复制以下信息到docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
  
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 --graph=/home/docker   -H unix://var/run/docker.sock
ExecReload=/bin/kill -s HUP
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
  
[Install]
WantedBy=multi-user.target

ExecStart可以自定义docker的解压目录,graph可以自定义docker的RootDir目录(按需设置路径,启动前需要创建该目录),其他不用动。

给docker.service文件添加执行权限

sudo chmod 777 /etc/systemd/system/docker.service

重新加载配置文件

systemctl daemon-reload //重载systemd下 xxx.service文件
systemctl start docker //启动Docker
systemctl enable docker.service //设置开机自启

PS:如在start阶段提示level=warning msg=“The “-g / --graph” flag is deprecated. Please use “–data-root” instead”,则将docker.service配置中的–graph替换为 --data-root。
普通版本的Docker安装过程到此处即可,/etc/docker/daemon.json配置内容按需设置,也可以直接在文件内写一个{}。

添加nvidia-docker支持

我们执行如下命令可以查看展示 nvidia-container-runtime 包的全部依赖:

yum deplist nvidia-container-runtime

执行如下命令将软件的所有依赖包下载到当前目录下:

repotrack nvidia-container-runtime

将上面下载下来的所有 rpm 包上传到服务器,然后执行如下命令进行离线安装,该命令会自动解决依赖。

rpm -Uvh --force --nodeps *.rpm
CentOS 8.5版本无需覆盖安装:
rpm -Uvh --nodeps *.rpm

设置运行环境nvidia

vi /etc/docker/daemon.json并填写以下内容:

{
    "default-runtime" : "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

常见问题

如启动docker时卡住并启动失败,可执行getenforce检查设置,如果结果为Enforcing,可执行setenforce 0设置。
永久生效可以直接vi /etc/selinux/config文件,设置SELINUX=disabled

  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值