Linux Shell 实现一键部署二进制docker+docker_compose

2023-05-16

See the source image

docker 前言

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

docker 参考

dockerdocker-compose
downloaddownload

Linux 各系统下载使用参考

Red HatRocky Linux Oracle Linux

AlmaLinux 

ubuntususelinuxesxiRHEL标准安装系统安装参考YUM参考

MobaXterm 远程连接工具

Red Hat Enterprise 9.0 文档Kickstart 生成器
downloaddownloaddownloaddownloaddownloaddownloaddownload参考参考配置参考download参考Kickstart 
版本兼容性

安装 docker,docker_compose

  • 创建安装自动化脚本

  • 实现在线安装docker,docker_compose,环境变量,系统服务,防火墙配置,企业微信机器人通知。
  • 以下基于Redhat系统
  • /opt/docker 安装目录
  • curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXX' #更改自己的企业微信机器人地址 
  • curl -o /etc/yum.repos.d/redhat.repo http://mirrors.aliyun.com/repo/Centos-8.repo #阿里在线repo
  • yum install figlet -y #用于将文字转换为放大艺术字(使用figlet Mysql显示)
vi /docker_install.sh
#!/bin/sh
# -*- coding: utf-8 -*-
# Author: CIASM
# update 2023/04/12

<<!
██████╗  ██████╗  ██████╗██╗  ██╗███████╗██████╗ 
██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗
██║  ██║██║   ██║██║     █████╔╝ █████╗  ██████╔╝
██║  ██║██║   ██║██║     ██╔═██╗ ██╔══╝  ██╔══██╗
██████╔╝╚██████╔╝╚██████╗██║  ██╗███████╗██║  ██║
╚═════╝  ╚═════╝  ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝ 
!

<<!
#Centos 8 依赖安装
yum install -y wget yum-utils device-mapper-persistent-data lvm2 git vim net-tools slirp4netns fuse3-libs fuse-overlayfs fuse3 libslirp libcgroup 
!

#Define docker path variables
docker_url=https://download.docker.com/linux/static/stable/x86_64
docker_tgz=docker-23.0.3.tgz
docker_download=/opt
DOCKER_PREFIX=/opt/docker

#Define docker-compose path variables
docker_compose_url=https://github.com/docker/compose/releases/download/v2.17.2
docker_compose=docker-compose-linux-x86_64

install_rely (){
yum install -y wget device-mapper-persistent-data lvm2 git vim net-tools slirp4netns fuse3-libs fuse-overlayfs fuse3 libslirp libcgroup 
rpm -ivh https://yum.oracle.com/repo/OracleLinux/OL8/baseos/latest/x86_64/getPackage/yum-utils-4.0.21-14.1.0.1.el8.noarch.rpm --nodeps --force
}

install_docker (){
if [ ! -d ${DOCKER_PREFIX} ];then
install_rely
wget -N -P $docker_download $docker_url/$docker_tgz
tar -xf $docker_download/$docker_tgz  -C $docker_download
ln -s $DOCKER_PREFIX/* /usr/bin/
 if [ $? -eq 0 ];then
     echo 'export DOCKER_HOME=/opt/docker'  >> /etc/profile
     source /etc/profile
	 install_docker_compose
	 docker_config
   action "\033[32mThe docker Install Sussess...\033[0m" 
   else
	action "\033[33mThe docker Install Failed...\033[0m" 
	exit 1
   fi
   else
	echo -e "\033[31mThe docker already Install...\033[0m"
fi
}

install_docker_compose (){
wget -N -P $docker_download $docker_compose_url/$docker_compose
mv $docker_download/$docker_compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
}

docker_config (){
cat >>/usr/lib/systemd/system/docker.service<<EOF
[Unit]
Description=Docker Application Container Engine
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
LimitCORE=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
 
[Install]
WantedBy=multi-user.target
EOF
 
systemctl daemon-reload
systemctl enable --now docker

rm -rf $docker_download/$docker_tgz
}

Deployment_completion_notification (){
   host_ID=`dmidecode -s system-serial-number | sed -r 's/\s+//g'`
   host_IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2}' | awk 'NR==1'`
   memory_Size=`dmidecode -t memory | grep Size | grep -v No | awk '{sum+=$2} END {printf "%.0fG\n",sum/1^C4}'`
   CPU_Model=`cat /proc/cpuinfo | grep 'model name' | awk '{print $6}' | uniq`
   Disk_size=`fdisk -l | grep "sda:" | awk '{print $3$4}'`
   redhat_version=`cat /etc/redhat-release | grep "release" | awk '{print $6}'`
   redhat_core=`cat /proc/version | grep "version" | awk '{print $3}'`
   docker_version=`docker --version | awk '{print $3}'`
   docker_compose_version=`docker-compose --version | awk '{print $4}'`
   docker_server=`systemctl status docker | grep "Active" | awk '{print $2}'`
   curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXX' \
   -H 'Content-Type: application/json' \
   -d '
    {
     "msgtype": "markdown",
      "markdown": {
         "content": " **system check** <font color=\"info\"> complete </font>  \n
         > **Host IP Address** \n
          [http://'$host_IP'](http://'$host_IP') \n
         > **Hardware information** \n
          hostSN:<font color=\"info\"> '$host_ID' </font> \n
          CPU_Model:<font color=\"info\"> '$CPU_Model' </font> \n
          memory_Size:<font color=\"info\"> '$memory_Size' </font> \n
          Disk_size:<font color=\"info\"> '$Disk_size' </font> \n
          System_version:<font color=\"info\"> '$redhat_version' </font> \n
          system_core:<font color=\"info\"> '$redhat_core' </font> \n
         > **docker install** \n
          docker_version:<font color=\"info\"> '$docker_version' </font> \n
          docker_compose_version:<font color=\"info\"> '$docker_compose_version' </font> \n
		  docker_server:<font color=\"info\"> '$docker_server' </font> \n",
      }
   }'
}
 
 
man (){
install_docker
Deployment_completion_notification 
}
man

执行安装

sh /docker_install.sh

企业微信机器人通知

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux Shell 实现一键部署二进制docker+docker_compose 的相关文章

  • conda相关

    安装 ubuntu 18 04 安装conda环境 及 创建虚拟环境 创建虚拟环境 conda create span class token operator span n your env name python span class
  • 几种PCL点云显示方式

    注意添加头文件 xff1a span class token macro property span class token directive hash span span class token directive keyword in
  • 复盘一下slam中常用的几种点云类型

    使用livox雷达常涉及至少3种点云格式 xff0c 一个是livox官方定义的custom格式 xff0c 另外两个就是激光 视觉常用的pcl类型和ros类型 之前总结过Livox雷达驱动程序发布点云格式CustomMsg和pcl Poi
  • [Python]-使用Requests模拟登录

    文章目录 登录说明session操作data序列化 示例代码登录流程验证 在 使用Requests进行HTTP请求与文件上传下载 中介绍了requests库的常用方法 xff0c 本章介绍如何使用request进行用户登录 登录说明 一般页
  • mloam

    以读 pcd xff1a 读取4个激光雷达数据 xff0c input estimator span class token punctuation span span class token function inputCloud spa
  • ROS 工作空间下编译库文件,安装库头文件到devel文件夹

    Hello xff0c 欢迎来到我的博客 我们在ROS工作空间下编程时 xff0c 可能会出现这一种情况 xff1a 我们在一个package下写了一个库 xff0c 而在另一个package要引用这个库 这个时候该怎么处理呢 xff1f
  • js打开新页面的两种方式

    1 点击某一个链接之后跳转到新页面显示 window open http www baidu com blank 2 需要刷新当前页面或者覆盖当前页面 window open http www baidu com self
  • ROS入门教程的学习与总结

    ROS入门教程的学习与总结 1 安装ROS环境2 创建ROS空间3 创建ROS package4 catkin清除命令5 待续 1 安装ROS环境 ROS官网安装参考链接 Linux版本如果是16 04 安装ROS Kinect版本 ava
  • vins-fusion 怎么输出文件? vio_global,vio.txt,vio.csv内容与位置的修改

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 vins fusion 怎么输出文件 xff1f vio global vio txt vio csv内容与位置的修改1 vio g
  • ubuntu18.04安装、使用evo

    ubuntu18 04安装evo 1 切换python版本2 安装pip33 安装evo4 自带test测试5 evo工具介绍6 evo使用6 针对不同数据集的格式以及evo命令 官方连接 xff1a https github com Mi
  • RTKLIB源码及介绍

    目录 1 官网翻译 2 文件下载 1 官网翻译 RTKLIB xff1a 用于 GNSS 定位的开源程序包 下载 版本 日期 适用于 Windows 的二进制 AP 包 带有源程序的完整包 0 2 0 2006 12 16 rtklib 0
  • KITTI数据集基准、转换成tum以及十个groundtruth对应图

    KITTI数据集基准 转换成tum以及十个groundtruth对应图 时间戳的位置gt的位置利用evo进行转换生成kitti基准带时间的tum格式十个路径展示 xff1a 跑vins fusion的时候 xff0c 不知道使用的kitti
  • 【国产可编程逻辑控制器plc调研】

    国产可编程逻辑控制器plc调研 1 高性能PLC xff08 ACxxx系列 xff09 2 中型PLC xff08 AMx00系列 xff09 3 小型PLC xff08 HxU HxS xff09 4 小型紧凑型PLC xff08 Ea
  • 【工业相机接口配置】万兆网口、Camera Link接口、CXP接口

    工业相机接口配置 xff08 万兆网口 Camera Link接口 CXP接口 xff09 万兆网口Camera Link接口CXP接口 目前接触到的工业相机主要有万兆网口 Camera Link接口 CXP接口等不同的接口 另外更常用的是
  • [C++]-yml库yaml-cpp简介

    文章目录 YAML基本语法数据类型对象数组标量引用 yaml cpp库生成器Emitter节点Node数组对象创建解析 yaml cpp是一个yml操作库 YAML YAML YAML Ain t a Markup Language xff
  • 【一篇看全】工业相机常用数据传输协议速率对比(CameraLink,CXP,1/10/100GigE,USB)

    一篇看全 工业相机常用数据传输协议速率对比 xff08 CameraLink xff0c CXP xff0c GigE xff0c USB xff09 CameraLinkCXPGigE10GigE100GigEUSB接口协议速率对比速率换
  • [Unity插件]A* Pathfinding Project:简易教程(一)

    原文链接 xff1a http arongranberg com astar docs getstarted php 插件下载地址 xff1a http pan baidu com s 1eROqaB4 题外话 xff1a 最近想学习一下A
  • VC++编译说明

    目 录 第 1 章 编译步骤 1 第 2 章 编译源文件 2 2 1 编译器 2 2 2 包含头文件 3 2 3 重复包含 6 2 4 预编译头文件 7 2 4 1 创建 7 2 4 2 使用 8 2 4 3 说明 9 第 3 章 编译资源
  • RealSense error calling rs2_pipeline_start_with_config

    问题 获取IMU数据的时候 xff0c 出现如下信息 xff1a RealSense error calling rs2 pipeline start with config pipe 0x5596a79cf920 config 0x559
  • 【磨刀不误砍柴工】由传递函数绘出频率响应图

    用三阶低通IIR的传递函数来绘制频率响应图 xff1a H z 61 0 05634

随机推荐

  • 【磨刀不误砍柴工】Simulink通过From Workspace 模块传入无限长数据进行回放

    文章目录 Simulink模块展示Model SettingsMatlab脚本From Workspace设置结果 Simulink模块展示 当传输频率过大时 xff0c 通常采集的数据量非常大 xff0c 通常超过excel最大列 xff
  • 【Matlab】滤波器设计中的频率归一化

    信号处理工具箱中 xff0c 归一化频率为把幅频响应 xff08 或其他 xff09 曲线的横轴单位从Hz变为rad sample 经常使用的频率是Nyquist频率 xff0c 它被定义为采样频率的一半 不考虑镜像部分范围 xff1a 0
  • Ubuntu16.04中Displays点不开、Language Support点不开、fcitx安装失败的解决方法

    Ubuntu中Displays点不开的解决方法 问题 由于Ubuntu中Displays打不开导致分辨率不能改 xff0c 只能小屏幕 xff0c 怎么样才能修复 xff0c 让Displays能设置 xff1f 解决方法 在终端输入 xf
  • makefile:2: *** missing separator. Stop. make 之后出现的错误,解决方法

    问题 今天建立了个个helloworld c 以及Makefile文件 hellworld c 中内容如下 span class hljs preprocessor include lt stdio h gt span span class
  • 四旋翼无人机俯仰角、横滚校和航向角和电机输出PWM的关系详解(一种情况)

    说明 xff1a 陀螺仪和加速度计摆放坐标如下 xff1a 机头方向可以任意设置 xff0c 如图所示 X 型和十字型无人机的机头方向 由于电机转动会产生一个扭力 xff0c 故相邻的两个电机转动方向相反 在实际实验中 xff0c 当姿态角
  • [docker]Sealer简介

    文章目录 安装创建集群清理集群本机免密登录 镜像构建与运行KubefileSealer ImageClusterfile 制作app镜像 sealer是阿里开源的一款分布式应用打包交付运行的解决方案 xff1b 通过把分布式应用及其所依赖的
  • APM EKF2 alt source

    主要看NavEKF2 core下面的selectHeightForFusion 函数 首先从应用层读取高度 xff0c 再进行角度补偿 xff0c 分别有三种高度源 xff1a baro rangefinder GPS xff08 可以在地
  • zsh: command not found ??? 所有命令在zsh终端失效

    多增加几个环境变量路径即可 在 zshrc 最底部加入即可 xff1a PATH 61 bin usr bin usr local bin PATH export PATH
  • MISSION_MAVLINK

    上传航点的mavlink包 MISSION ITEM 39 Message encoding a mission item This message is emitted to announce the presence of a miss
  • VS2017使用libcurl,链接错误

    当使用libcurl库出现链接错误 xff0c 如下 1 gt WebSocketMsg obj error LNK2001 unresolved external symbol imp curl global init 1 gt WebS
  • Linux Shell 实现一键部署Msql8

    mysql前言 MySQL 是最流行的关系型数据库管理系统 xff0c 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System xff1a 关系数据库管理系统 应用
  • Linux Shell 实现一键部署Msql5

    mysql前言 MySQL 是最流行的关系型数据库管理系统 xff0c 在 WEB 应用方面 MySQL 是最好的 RDBMS Relational Database Management System xff1a 关系数据库管理系统 应用
  • Linux Shell 实现一键部署tomcat10+java13

    tomcat 前言 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器 xff0c 属于轻量级应用服务器 xff0c 在中小型系统和并发访问用户不是很多的场合下被普遍使用 xff0c 是开发和调试JSP 程序的首选 对于一个初学
  • Linux Shell 实现一键部署SQL_Server2022

    sql Server 前言 Microsoft SQL Server 是一个全面的数据库平台 xff0c 使用集成的商业智能 BI 工具提供了企业级的数据管理 Microsoft SQL Server 数据库引擎为关系型数据和结构化数据提供
  • Linux Shell 实现一键部署Redis6

    redis 前言 Redis xff08 Remote Dictionary Server xff0c 即远程字典服务 xff0c 是一个开源的使用ANSI C语言编写 支持网络 可基于内存亦可持久化的日志型 Key Value数据库 xf
  • Linux Shell 实现一键部署Rabbitmq

    rabbitmq 前言 RabbitMQ是实现了高级消息队列协议 xff08 AMQP xff09 的开源消息代理软件 xff08 亦称面向消息的中间件 xff09 RabbitMQ服务器是用Erlang语言编写的 xff0c 而集群和故障
  • [linux]mount与nfs挂载简介

    文章目录 挂载mount目录间挂载卸载与fuserfstabNFS Server配置命令 NFS client mount用于挂载设备 xff1a 挂载分区 xff1a mount dev sdb1 data xff1b 文件夹间 xff1
  • Linux Shell 实现一键部署Nginx

    nginx前言 nginx engine x 是 HTTP 和反向代理服务器 邮件代理服务器和通用 TCP UDP 代理服务器 xff0c 最初由Igor Sysoev编写 很长一段时间以来 xff0c 它一直在许多负载重的俄罗斯网站上运行
  • Linux Shell 实现一键部署二进制Rabbitmq

    rabbitmq 前言 RabbitMQ是实现了高级消息队列协议 xff08 AMQP xff09 的开源消息代理软件 xff08 亦称面向消息的中间件 xff09 RabbitMQ服务器是用Erlang语言编写的 xff0c 而集群和故障
  • Linux Shell 实现一键部署二进制docker+docker_compose

    docker 前言 Docker 是一个开源的应用容器引擎 xff0c 让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中 xff0c 然后发布到任何流行的 Linux或Windows 机器上 xff0c 也可以实现虚拟化 容器是完全