前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker离线安装(支持GPU)

Docker离线安装(支持GPU)

原创
作者头像
拉爷
修改2024-02-28 09:17:14
2910
修改2024-02-28 09:17:14
举报
文章被收录于专栏:基础设施基础设施

一、下载安装包

https://download.docker.com/linux/static/stable/x86_64/

选择自己需要的docker版本,这里我使用的是docker-20.10.9.tgz版本。

二、安装

自行在服务器上创建一个临时目录,将安装包上传至改目录下。

解压安装包并mv到/usr/bin目录下:

代码语言:shell
复制
tar zxf docker-20.10.9.tgz
mv docker/* /usr/bin/
rm -rf docker*.tgz

三、配置

1、复制以下信息到docker.servicem/目录,并创建docker.service文件

代码语言:shell
复制
cd /etc/systemd/system/
touch docker.service

4、复制以下信息到docker.service

代码语言:vim
复制
[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目录(按需设置路径,启动前需要创建该目录),其他不用动。

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

代码语言:shell
复制
sudo chmod 777 /etc/systemd/system/docker.service

4、重新加载配置文件(每次有修改docker.service文件时都要重新加载下)

代码语言:shell
复制
systemctl daemon-reload //重载systemd下 xxx.service文件
systemctl start docker //启动Docker
systemctl enable docker.service //设置开机自启

如在start阶段提示level=warning msg="The \"-g / --graph\" flag is deprecated. Please use \"--data-root\" instead",则将docker.service配置中的--graph替换为--data-root。

PS:普通版本的Docker安装过程到此处即可,/etc/docker/daemon.json配置内容按需设置,也可以直接在文件内写一个{}。

需要使用GPU的继续往下。

四、GPU支持

1、添加nvidia-docker支持

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

代码语言:shell
复制
yum deplist nvidia-container-runtime

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

代码语言:shell
复制
repotrack nvidia-container-runtime

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

代码语言:shell
复制
rpm -Uvh --force --nodeps *.rpm
CentOS 8.5版本无需覆盖安装:
rpm -Uvh --nodeps *.rpm

2、设置运行环境nvidia

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

代码语言:json
复制
{
    "default-runtime" : "nvidia",
    "runtimes": {
        "nvidia": {
            "path": "nvidia-container-runtime",
            "runtimeArgs": []
        }
    }
}

3、常见问题

如启动docker时卡住并启动失败,可执行getenforce检查设置,如果结果为Enforcing,可执行setenforce 0设置。

永久生效可以直接vi /etc/selinux/config文件,设置SELINUX=disabled

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com