一、下载安装包
https://download.docker.com/linux/static/stable/x86_64/
选择自己需要的docker版本,这里我使用的是docker-20.10.9.tgz版本。
二、安装
自行在服务器上创建一个临时目录,将安装包上传至改目录下。
解压安装包并mv到/usr/bin目录下:
tar zxf docker-20.10.9.tgz
mv docker/* /usr/bin/
rm -rf docker*.tgz
三、配置
1、复制以下信息到docker.servicem/目录,并创建docker.service文件
cd /etc/systemd/system/
touch docker.service
4、复制以下信息到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目录(按需设置路径,启动前需要创建该目录),其他不用动。
3、给docker.service文件添加执行权限
sudo chmod 777 /etc/systemd/system/docker.service
4、重新加载配置文件(每次有修改docker.service文件时都要重新加载下)
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 包的全部依赖:
yum deplist nvidia-container-runtime
执行如下命令将软件的所有依赖包下载到当前目录下:
repotrack nvidia-container-runtime
将上面下载下来的所有 rpm 包上传到服务器,然后执行如下命令进行离线安装,该命令会自动解决依赖。
rpm -Uvh --force --nodeps *.rpm
CentOS 8.5版本无需覆盖安装:
rpm -Uvh --nodeps *.rpm
2、设置运行环境nvidia
vi /etc/docker/daemon.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 删除。