参考资料 : https://www.jb51.net/article/167103.htm
一、优势说明:
1、包含安装、卸载脚本,一键运行;
2、离线安装方法适用性更强,对于部署在客户的内网环境下,尤为给力;
二、安装包下载地址:
官网下载地址:https://download.docker.com/linux/static/stable/x86_64/
三、配置文件及脚本准备
1、准备docker.service 系统配置文件
新建文件命名为:docker.service,并将如下内容粘贴进去,备用。
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
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
2、准备install.sh安装脚本
新建文件命名为:install.sh,并将如下内容粘贴进去,备用。
#!/bin/sh
echo '解压tar包...'
tar -xvf $1
echo '将docker目录移到/usr/bin目录下...'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录...'
cp docker.service /etc/systemd/system/
echo '添加文件权限...'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件...'
systemctl daemon-reload
echo '启动docker...'
systemctl start docker
echo '设置开机自启...'
systemctl enable docker.service
echo 'docker安装成功...'
docker -v
3、准备uninstall.sh卸载脚本
新建文件命名为:uninstall.sh,并将如下内容粘贴进去,备用。
#!/bin/sh
echo '删除docker.service...'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件...'
rm -rf /usr/bin/docker*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'
四、安装
1、上传至Linux
将上面准备好的四个文件上传至Linux目标目录(自己定就行,我的在 /usr/local/ 下)
2、执行安装脚本
[root@localhost local]# sh install.sh docker-17.03.1-ce.tgz
注意安装脚本执行的时候是带参数的,这个不要忘了,参数根据自己下载的docker版本而定。
开始摁回车结果却如下:
分别进入文件docker.service、install.sh、uninstall.sh的 vim 编辑模式下,键入命令:
:set fileformat=unix
执行后要:wq进行保存
之后再执行安装脚本如下:
可以看到这次完美安装,docker -v也看到版本号了,这时docker ps、docker search XX、docker images等命令都可以使用了,至于离线安装镜像等问题我会单独再写一篇,到时候会上链接 //TODO。
3、如果需要卸载
执行脚本:sh uninstall.sh ,注意这里就不需要参数了,要和安装脚本进行区别
[root@localhost local]# sh uninstall.sh
通过命令可以确认docker是否已经卸载了。
五、总结
从上面第一次安装失败的截图看,上图中脚本逻辑并不完善,如果有擅长的同学能给予优化是最好了。