centos7下如何离线安装docker和docker-compose
导读
具体安装步骤如下:
实测版本说明
centos:7.5
docker:19.03.5
docker-compose:1.24.3
官方资源下载地址
自行下载需要的版本。 [docker](https://download.docker.com/linux/static/stable/x86_64/) [docker-compose](https://github.com/docker/compose/releases)
上传到服务器
上传 install-docker-offline.sh docker.service docker-ce docker-compose-Linux-x86_64压缩包到任意的同一文件夹下 建议到/home
执行
sh install-docker-offline.sh 其他的根据脚本提示操作
install.sh
#!/bin/sh echo -e '作者:Teler' echo -e '版本:v0.0.1' echo -e '创建时间:2020-02-02' echo -e '更新时间:2020-02-02 22:21' echo -e '给自己赋权限\n' chmod +x ./$0 #初始化 function init(){ clear echo -e '请选择操作\n' echo -e '1.安装docker\n' echo -e '2.安装docker-compose\n' echo -e 'exit:退出' call } #决定调用什么方法 function call(){ echo -e '\n' read -p '请输入:' INPUT case $INPUT in 1) installDocker ;; 2) installDockerCompose ;; *) #noFound echo '感谢使用........' exit ;; esac if [ $? -eq 0 ];then init fi } #安装docker function installDocker(){ read -p '请输入完整的docker压缩包文件名:' FILENAME searchFile $FILENAME if [ $? -ne 0 ];then echo -e '\n文件不存在' installDocker fi echo -e '\n解压文件...' tar -xzvf $FILENAME if [ $? -eq 0 ];then echo -e '\n将docker目录移到/usr/bin目录下...' cp docker/* /usr/bin/ if [ $? -ne 0 ];then echo -e '\n复制失败' exit fi echo -e '\n将docker.service 移到/etc/systemd/system/ 目录...' cp docker.service /etc/systemd/system/ if [ $? -eq 0 ];then echo -e '\n添加文件权限...' chmod +x /etc/systemd/system/docker.service if [ $? -ne 0 ];then echo -e '\n添加失败' exit fi echo -e '\n重新加载配置文件...' systemctl daemon-reload if [ $? -ne 0 ];then echo -e '\n加载失败' exit fi echo -e '\n启动docker...' systemctl start docker if [ $? -ne 0 ];then echo -e '\n启动失败' exit fi echo -e '\n设置开机自启...' systemctl enable docker.service if [ $? -ne 0 ];then echo -e '\n开机启动失败' exit fi echo -e '\ndocker版本:' docker -v else echo -e '\n复制失败' exit fi else echo -e '\n解压失败' exit fi return 0 } #安装docker-compose function installDockerCompose(){ read -p '请输入完整的docker compose文件名:' FILENAME searchFile $FILENAME if [ $? -ne 0 ];then echo -e '\n文件不存在' installDockerCompose fi echo -e '\n复制文件到/usr/local/bin下 并重命名为docker-compose' cp -y $FILENAME /usr/local/bin/docker-compose if [ $? -ne 0 ];then echo -e '\n赋予执行权限' chmod +x /usr/local/bin/docker-compose echo '\ndocker-compose版本:' docker-compose -v else echo '\n复制失败' fi return 0 } #暂未支持 function noFound(){ echo -e '暂未支持' return 0 } #检查文件是否存在 #存在返回0 不存在返回1 function searchFile(){ if [ -f "$1" ]; then return 0 else return 1 fi } init
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
评论(0)