用的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