docker离线部署docker,部署业务方式

 更新时间:2024年01月17日 16:51:17   作者:大鹏blog  
这篇文章主要介绍了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安装Minio+SpringBoot上传下载文件方式

    Docker安装Minio+SpringBoot上传下载文件方式

    本文主要介绍了如何通过Docker安装Minio并进行访问测试,同时也讲解了如何在SpringBoot中上传文件到Minio,内容包含了pom文件引入依赖,application.properties配置,Minio配置,MinioClinet,FileService,FileServiceImpl的配置
    2024-10-10
  • docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)

    docker容器运行成功但无法访问的原因分析及解决方案(以Tomcat为例亲测有效)

    这篇文章主要介绍了docker容器运行成功但无法访问的原因分析及对应解决方案(以Tomcat为例亲测有效),文中通过图文结合的方式介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2024-03-03
  • Mac上使用Docker搭建kafka集群方式

    Mac上使用Docker搭建kafka集群方式

    这篇文章主要介绍了Mac上使用Docker搭建kafka集群方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • docker overlay2 文件夹比较大处理步骤

    docker overlay2 文件夹比较大处理步骤

    本文介绍了Docker默认存储驱动overlay2文件夹变得大时的清理方法,包括清理未使用的Docker对象、删除未使用的容器和镜像、清理日志文件和数据卷等步骤,通过这些步骤,可以有效释放磁盘空间并避免存储空间不足的问题,感兴趣的朋友跟随小编一起看看吧
    2025-03-03
  • 浅析Docker如何创建自定义容器(附通用Python 3.12模板)

    浅析Docker如何创建自定义容器(附通用Python 3.12模板)

    这篇文章主要为大家详细介绍了Docker如何创建自定义容器,并附上通用Python 3.12模板,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-11-11
  • Docker中的镜像详细介绍

    Docker中的镜像详细介绍

    这篇文章主要介绍了Docker中的镜像详细介绍的相关资料,需要的朋友可以参考下
    2017-05-05
  • docker快速部署zabbix的方法

    docker快速部署zabbix的方法

    zabbix标准组件是分布式的,因此部署过程中需要创建多个容器,本文主要介绍了docker快速部署zabbix的方法,具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • 为docker中的nginx配置https的方法步骤

    为docker中的nginx配置https的方法步骤

    这篇文章主要介绍了为docker中的nginx配置https的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Docker容器部署Java项目的自动化脚本

    Docker容器部署Java项目的自动化脚本

    这篇文章主要为大家详细介绍了Docker容器中部署Java项目的自动化脚本编写,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • Docker复制现有容器的实现方法

    Docker复制现有容器的实现方法

    在使用Docker进行应用开发和部署时,我们经常需要基于现有的容器创建相似的环境,本文主要介绍了Docker复制现有容器的实现方法,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论