用的CentOS 8.4的虚拟机,模拟的服务器环境,无法连接外网,只能离线安装软件。
首先通过外网机下载Docker安装包,下载地址:Index of linux/static/stable/x86_64/https://download.docker.com/linux/static/stable/x86_64/
大家可以根据自己的需要下载相应的版本,我下载的是20.10.8。
解压文件包:
tar zxvf docker-20.10.8.tgz
得到docker文件夹,进入到该文件夹,可以看到有如下这些文件:
为了让docker命令可在任何位置执行,需要将以上这些文件移动到系统可执行目录,比如/usr/bin目录;或者将当前目录添加到环境变量中。此处,我们用第一种方式。
cp * /usr/bin/
可选择不覆盖runc。
到此,已经可以执行docker命令了,如下命令可查看docker的版本信息。
进一步地,为了便于对docker进行管理,我们需要配置docker service。在/etc/systemd/system目录下创建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 -H unix://var/run/docker.sock ExecReload=/bin/kill -s HUP $MAINPID # 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
为docker.service增加可执行权限:
chmod +x /etc/systemd/system/docker.service
重新加载服务配置文件:
systemctl daemon-reload
重启docker:
systemctl restart docker
使能开机自启动:
systemctl enable docker
查看docker状态:
systemctl status docker