docker项目克隆部署

镜像保存

      docker images | grep registry.harbor.com:58443/xiangan/base-sa-master/gateway-zuul
      registry.harbor.com:58443/xiangan/base-sa-master/gateway-zuul latest 26185ac9d294 47 hours ago 893MB

      docker save -o gate2.tar 26185ac9d294 //导出的时候如果指定镜像的ID就没有保存原来镜像的tag
      docker save -o gate2.tar registry.harbor.com:58443/xiangan/base-sa-master/gateway-zuul:latest //保留原来镜像的tag

      gzip gate2.tar

镜像导出保留原标签

      docker save -o redis2.tar 192.168.30.113/library/redis:latest

      gzip redis2.tar

         

      加载导出的镜像

         docker load -i redis2.tar.gz

         

 镜像导出不保留原标签

          docker save -o redis3.tar 50541622f4f1

          gzip redis3.tar

          

        加载导出的镜像

          

       找不到刚刚加载的镜像

         

         docker save -o redis2.tar 192.168.30.113/library/redis:latest

          

 镜像中服务对比调试

            对比镜像中文件是否相同,如果不同的话可能会造成一些异常

            启动目标镜像并指定自己的启动命令
            docker run -it --entrypoint /bin/bash 96c01645765e
            jar -xvf gateway-zuul-prod.jar
            md5sum gateway-zuul-prod.jar

          

          

         

        分别到原主机上面的命令和目标主机执行以上命令来查看服务包的代码文件是否一致

找到pod或者容器中对应的程序包

        find / -name  gateway-zuul-prod.jar

        

       不管是pod拷贝还是容器拷贝,本质上都是主机之间的文件拷贝。因为他们都会在主机上创建一个对应的目录

       找到这个包就可以对pod或者容器中相应的包进行替换,快速方便的对镜像中的服务进行调试

es的sidecar数据初始化

          

          

复制代码
#!/bin/sh

ip=192.168.30.123
DATE=`date +%Y%m%d`
ES_PASSWD="eeee"
template_dir=/elasticsearch/shell/initsh/es/template
sleep 15  #这里必须sleep一段时间
count=0
while [ $count -le 0 ]
do
  count=`ss -antp | grep 9200 | wc -l`
  echo "进程还在启动中......"
  sleep 1
done

/elasticsearch/bin/elasticsearch-users useradd admin -p admin123 -r superuser
sleep 5
curl -k -u admin:admin123 -XPUT "https://instance:9200/_xpack/security/user/elastic/_password?pretty" -H 'Content-Type: application/json' -d  '{"password":"Transfar@2024"}'
curl -k -u admin:admin123 -XPUT "https://instance:9200/_xpack/security/user/kibana/_password?pretty" -H 'Content-Type: application/json' -d  '{"password":"Transfar@2024"}'
/elasticsearch/bin/elasticsearch-users userdel admin
echo "设置密码成功结束"
sleep 1
result_event=`curl -k -s -u elastic:${ES_PASSWD} -XGET https://${ip}:9200/_cat/indices/event_${DATE}`
result_alarm=`curl -k -s -u elastic:${ES_PASSWD} -XGET https://${ip}:9200/_cat/indices/alarm_${DATE}`
result_incident=`curl -k -s -u elastic:${ES_PASSWD} -XGET https://${ip}:9200/_cat/indices/incident`
result_merge=`curl -k -s -u elastic:${ES_PASSWD} -XGET https://${ip}:9200/_cat/indices/merge_alarm`
result_operation=`curl -k -s -u elastic:${ES_PASSWD} -XGET https://${ip}:9200/_cat/indices/operation_incident`
echo -e "####导入event模板####"
curl -k -u elastic:${ES_PASSWD} -XPUT https://${ip}:9200/_template/event -H 'content-Type:application/json' -d @${template_dir}/event.json

tail -f /dev/null
边车容器启动脚本
复制代码

         

         

       部署k8s pod的时候自动创建es的用户密码并导入需要用到的索引模板,不再需要在pod启动后再手动进行导入操作

 flink自动上传jar包  

         

           

           

复制代码
#!/bin/sh

sleep 15
count=0
while [ $count -le 0 ]
do
  count=`ss -antp | grep 8081 | wc -l`
  echo "进程还在启动中......"
  sleep 1
done
curl -F 'file=@/opt/sa-conf/analysis-entrypoint.jar' http://127.0.0.1:8081/jars/upload

echo -e "####上传jar包完成####"
tail -f /dev/null
边车容器启动脚本
复制代码

     通过边车容器实现一些自动操作

 

mysql初始化数据

         

         

复制代码
#!/bin/sh
sleep 20

for i in {1..10}; do
    sh /var/lib/mysql/initdata.sh
    if [ $? -eq 0 ]; then
        break
    fi
    echo "初始化数据失败,等待下一次重试"
    sleep 3
done


if [ "$i" -ge 10 ]; then
  echo "初始化数据失败,停止重试,需要手动修改数据库数据"
else
  echo "初始化数据成功"
fi

tail -f /dev/null
updata.sh
复制代码
#!/bin/sh

mysql -utaishi -p123@2024 -h192.168.30.123 --execute="UPDATE siem.sys_config SET vals='http://192.168.30.123:1688' WHERE id= '2wsyhjki765555544556c564rf8ui9'"
initdata.sh

      pod启动后自动修改数据库表中的数据

flink容器启动限制

         容器一直卡着不动,去掉容器的资源限制

           

           

         成功启动容器服务

posted @   不懂123  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示