涉及到的文件有 1) shell脚本 docker)服务描述文件 3)docker离线安装包
shell自解压脚本(ins.sh)
#!/bin/bash
preline=14
line=`wc -l $0|awk '{print $1}'`
line=`expr $line - $preline`
echo *****************extract docker**************
echo must use -zxv ,dont use tar zxvf
rm -rf docker
tail -n $line $0 | tar -zxv
cp docker/* /usr/bin/
cp docker/docker.service /etc/systemd/system/docker.service
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker.service
ret=$?
exit $ret
注意在Ins.sh脚本的最后一行 exit $ret后面不要再有换行 否则行数对不上
docker服务描述文件(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
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
Docker离线安装包 下载地址: https://download.docker.com/linux/static/stable/x86_64
文件docker-20.10.10.tgz下载完成并解压之后,可以将服务描述文件docker.service放到解压后的文件夹中并重新打成压缩包 docker-20.10.10-service.tar
合并 shell脚本(ins.sh)和docker压缩包
使用cat命令合并 cat ins.sh docker-20.10.10-service.tar > installdockerservice.sh
将合并完成的自解压shell脚本 installdockerservice.sh 拷贝到服务器上 并赋予可读可写可执行的权限
chmod +rwx installdockerservice.sh
然后执行 ./installdockerservice.sh 就可以一键安装成docker服务了
docker安装成服务之后就可以使用systemctl 命令来管理
小结: 上述自解压脚本 是shell脚本与压缩包结合体,适用于各种一键安装的场景。特别是在内网隔离环境下,往往能够大大提升部署的效率,建议多多使用。