docker离线部署docker,部署业务方式
背景
有时候我们的软件部署环境是完全离线的,需要离线部署docker ,部署业务相关的软件,为了方便操作,提供一下脚本
脚本文件
#!/bin/bash # auto deploy icity system # offline install docker use rpm set -ex install_dir='/software_install' docker_rpm='/software/docker_rpm' images='/software/images' echo -e "auto deploy software" # the tar file is uploaded at "/" function untar(){ tar -xvf cfss_install.tar }; function remove_old_version() { yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine }; function install_docker(){ rpm -ivh ${docker_rpm}/*.rpm --nodeps --force systemctl enable docker systemctl start docker }; function load_image(){ docker load -i ${images}/redis.tar docker load -i ${images}/mysql.tar docker load -i ${images}/forntend.tar docker load -i ${images}/backend.tar }; function run_redis(){ tag=`docker images | grep redis | awk '{ print $2 }'` docker run -itd --name redis -p 6379:6379 redis:${tag} }; function run_mysql(){ tag=`docker images | grep mysql | awk '{ print $2 }'` docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=123456 \ -p 3306:3306 mysql:${tag} }; function run_forntend(){ tag=`docker images | grep cfss-vue-icity | awk '{ print $2 }'` docker run -itd -p 8700:80 --name forntend \ forntend:${tag} }; function run_backend(){ tag=`docker images | grep cfss-icity | awk '{ print $2 }'` mkdir -p /mnt/disk1/uploadfiles/ docker run -itd -p 8701:19001 --name backend \ backend:${tag} }; untar remove_old_version install_docker load_image run_redis run_mysql run_forntend run_backend if [ $? -eq 0 ] ; then echo -e "auto deploy is done !" ; fi
该脚本实现了 离线安装docker ,自动化导入image包, 自动运行容器等操作
docker 是通过rpm 包进行安装
安装包获取:https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
其中包括 一些以来rpm 需要我么自己获取
获取方法:
1.找一台能联网的机器,开启 yum缓存 ,(如何开启,看下图 keepcache=1即可)
2. yum install docker-ce-18.06.1.* -y (视具体版本修改)
3. 去 yum的缓存路径下去找 ,看下图 cachedir路径就是 如我当前环境存储路径 为:/var/cache/yum/x86_64/7/base/packages
打包文件为一个tar的压缩文件,文件目录层级结构可以参考
software.tar -docker_rpm XXX.rpm XXX.rpm … -images nginx.tar redis.tar 业务.tar
docker的tar包 使用 docker save <image_name> -o XXX.tar 获取
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
docker容器间跨宿主机通信-基于overlay的实现方法
这篇文章主要介绍了docker容器间跨宿主机通信-基于overlay的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02docker部署springboot项目启动时间与宿主机相差8小时的解决
项目部署到docker环境,数据库中的时间总是少8个小时,本文就来介绍一下解决方法,具有一定的参考价值,感兴趣的可以了解一下2023-09-09Docker下部署MinIO存储服务通过Buckets实现文件的远程上传功能
MinIO是一个开源的软件,可以免费使用,还可以在普通硬件上运行,降低了存储成本,下面介绍在本地Docker中部署 MinIO 服务,并实现远程访问管理界面,节约云服务器运行成本,感兴趣的朋友跟随小编一起看看吧2024-01-01
最新评论