离线部署所需要的文件:
- docker安装包
- docker-compose安装包
- arkid的镜像文件
一、下载
要求:一台能上网,安装有docker和git,并且能执行shell的机器
在一个空的的文件夹下执行如下脚本, 直接全复制敲回车就行 , 会下载docker,docker-compose和所有镜像文件。
cat >> offlineinstallarkid.sh << "EOF"tar -vxzf docker-*.tgzcp docker/* /usr/bin/mv docker-compose /usr/local/bin/chmod +x /usr/local/bin/docker-composenohup dockerd >/dev/null 2>&1 &docker load < arkidimages.tarEOFcat >> get_all.sh << "EOF"# docker版本DOCKERVERSION=19.03.12# docker-compose版本DCVERSION=1.28.2ping -c 1 www.baidu.com > /dev/null 2>&1if [ $? -eq 0 ];thenecho "网络良好!!"elseecho "访问不了百度,应该是没有外网?"exit 1fi# 下载镜像,压缩镜像downloadImages(){echo -e "\n 开始下载镜像, 将要下载的镜像版本:\n"arkidimages=(`cat arkid-docker-compose/docker-compose.yml |grep image |awk '{print $2}'`)for i in ${arkidimages[*]}doecho $idonefor i in ${arkidimages[*]}doecho -e "\n --------- docker pull $i -----------------------\n"docker pull $idoneecho -e "\n --------- 导出镜像到一个压缩文件里 arkidimages.tar ---------------\n "docker save -o arkidimages.tar ${arkidimages[*]}}# 下载 docker-composedownloadCompose(){echo -e "\n下载docker-compose $DCVERSION \n"curl -L https://get.daocloud.io/docker/compose/releases/download/$DCVERSION/docker-compose-Linux-x86_64 > ./docker-compose}# 下载 dockerdownloadDocker(){echo -e "\n下载docker压缩包 $DOCKERVERSION \n"curl -LO https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-$DOCKERVERSION.tgz}# 下载 docker-compose描述文件downloadGit(){if [ -d "arkid-charts" ]; thenecho -e "arkid-charts已经在本目录下!"elseecho -e "\n下载 arkid 部署文件\n"git clone --branch master --depth 1 https://github.com/longguikeji/arkid-charts.gitfiif [ -d "arkid-charts/docker-compose" ]; thenmv arkid-charts/docker-compose ./arkid-docker-composerm -rf arkid-chartselseif [ -d "./arkid-docker-compose" ]; thenecho -e "\n arkid 部署文件已经存在 \n"elseecho -e "请删掉 arkid-charts文件夹,再执行脚本"fifi}downloadGitdownloadImagesdownloadComposedownloadDockerecho -e "\n ------------------------ 下载完成!------------------------ \n"EOFbash get_all.sh
二、上传文件到目标服务器
# 查看lsarkid-docker-compose arkidimages.tar docker-19.03.12.tgz docker-compose offlinearkid.sh# 把本目录下所有文件复制到目标机器某个目录scp -r ./* root@xxx.xxx.xxx.xxx:/root/workspace/arkid
三、解压安装
# 登陆目标服务器,进入到文件所在目录, 执行bash offlineinstallarkid.sh# 启动arkidcd arkid-docker-composedocker-compose up -d
四、更新
在没有安装docker的机器上可以使用python脚本来拉取镜像[https://github.com/NotGlop/docker-drag](https://github.com/NotGlop/docker-drag);
这个脚本会自动把镜像下载下来并打成tar包。
# 比如arkid后端更新了, 下载镜像,上传镜像docker pull longguikeji/arkid:1.4.6docker save -o arkid146.tar longguikeji/arkid:1.4.6# 比如arkid前端更新了, 下载镜像,上传镜像docker pull longguikeji/arkid-fe:1.4.5docker save -o arkidfe145.tar longguikeji/arkid-fe:1.4.5# 上传到目标服务器某个目录scp arkid146.tar root@xxx.xxx.xxx.xxx:/root/workspace/arkidscp arkidfe145.tar root@xxx.xxx.xxx.xxx:/root/workspace/arkid# 登陆目标服务器上传文件的目录docker load < arkid146.tardocker load < arkidfe145.tar# 进入到 arkid-docker-compose 目录cd arkid-docker-compose# 修改 arkid镜像版本vi docker-compose.yml:wq# 启动,会自动更新docker-compose up -d
