一键安装docker

tar -zxvf docker-20.10.20.tgz
mv docker/* /usr/bin/
echo "
[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
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/docker.service
chmod +x /etc/systemd/system/docker.service
systemctl daemon-reload
systemctl enable docker.service
systemctl start docker

以上为网上参考
下边为项目中的

#!/bin/bash
set -x
#set -e


function stop_docker() {
  docker_is_running=`systemctl list-units|grep docker.service|wc -l`
  if [ "$docker_is_running" != "" ] && [ "$docker_is_running" -eq 1 ]; then
    systemctl stop docker
    systemctl disable docker
  fi
    
  status=`systemctl is-active docker`
  if [ "$status" != "" ] && [ "$status" = "active" ]; then
    systemctl stop docker
    systemctl disable docker
  fi
}

if [ -f "/etc/.kyinfo" ]; then
  version=`cat /etc/.kyinfo | grep milestone | awk -F= '{print $2}'`
  if [ "$version" != "" ] && [ "$version" = "4.0.2-server-sp2-18011911.J1" ]; then
    if [ ! -f "/usr/bin/docker" ]; then
      echo -e "\033[35m[docker is not exist]\033[0m"
    else
      docker_version=`docker info|grep "Server Version"|cut -d ':' -f 2 |sed -e 's/^[ ]*//g'`
      if [ "$docker_version" != "" ] && [ "$docker_version" = "1.12.6" ]; then
        echo -e "\033[35m[uninstall docker 1.12.6]\033[0m"
        stop_docker
        echo $?
        apt list|grep docker |awk -F'/' '{print $1}'|grep docker.io
        apt --purge remove docker.io
        if [ -f "/usr/sbin/runc" ]; then
          mv -v /usr/sbin/runc /usr/sbin/runc.bak
        fi
        #/usr/sbin/run_init
      fi
    fi
  fi
fi

stop_docker
echo $?


if [ -f /etc/systemd/system/multi-user.target.wants/docker.service ]; then
  rm -fv /etc/systemd/system/multi-user.target.wants/docker.service
fi

echo '解压tar包'
tar zxvf docker-23.0.6-aarch64.tgz
echo '将docker目录移到/usr/bin目录下...'
cp -v docker/* /usr/bin/

echo '将docker.service移到/etc/systemd/system/ 目录...'
if [ ! -d /etc/docker ]; then
  echo "docker 目录不存在"
  mkdir -p /etc/docker
fi
cp daemon.json /etc/docker/daemon.json
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安装成功...'
echo '安装docker-compose'
cp -v docker-compose /usr/bin/ 
chmod +x /usr/bin/docker-compose  
docker -v && docker-compose -v
rm -frv docker/*

### 一键安装 Docker 的方法 可以通过编写并运行一个自动化脚本来实现 Docker一键安装。这种方法可以显著减少手动操作的时间,提高效率。以下是具体的操作方式以及注意事项。 #### 脚本功能概述 该脚本的主要功能包括以下几个方面: - 下载或加载指定版本的 Docker 安装包[^3]。 -Docker 添加到系统的 service 服务中[^2]。 - 启动 Docker 并验证其状态和版本信息。 #### 准备工作 在执行脚本之前,需要确保以下条件已满足: 1. 已下载所需的 Docker 安装文件(如 `docker-20.10.13.tgz`),或者具备网络访问能力以在线获取安装包。 2. 创建名为 `Docker.sh` 或类似的 Shell 脚本文件,并赋予可执行权限: ```bash chmod +x Docker.sh ``` #### 脚本内容示例 以下是一个简单的自动化安装脚本模板: ```bash #!/bin/bash echo "(1/6): 开始解压Docker安装..." tar -xzvf docker-20.10.13.tgz -C /usr/local/bin/ sleep 2 echo "(1/6): 解压完成" echo "(2/6): 配置Docker环境变量..." cat <<EOF | sudo tee /etc/systemd/system/docker.service [Unit] Description=Docker Service After=network-online.target firewalld.service [Service] Type=forking ExecStart=/usr/local/bin/dockerd Restart=always [Install] WantedBy=multi-user.target EOF sleep 2 echo "(2/6): 环境变量配置完成" systemctl daemon-reload echo "(3/6): Docker添加到service服务完成" sleep 2 echo "(4/6): 首次启动Docker..." systemctl start docker sleep 2 echo "(4/6): Docker首次启动完毕" echo "(5/6): 查看Docker状态..." systemctl status docker sleep 2 echo "(5/6): Docker状态查看完毕" echo "(6/6): 查询Docker版本..." docker version sleep 2 echo "(6/6): Docker版本查看完毕" ``` 此脚本涵盖了从解压安装包到验证 Docker 运行状态的全过程。 #### 执行脚本 使用以下命令来运行脚本: ```bash ./Docker.sh ``` 如果希望在同一 shell 中应用脚本中的更改,则需使用 `source` 命令: ```bash source Docker.sh ``` #### 注意事项 1. 如果是在离线环境中部署,请提前准备好对应的 Docker 安装包。 2. 确保当前用户具有足够的权限(通常需要 root 权限)来修改系统设置和服务[^1]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值