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

#!/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'"
pod启动后自动修改数据库表中的数据
flink容器启动限制
容器一直卡着不动,去掉容器的资源限制
成功启动容器服务
本文来自博客园,作者:不懂123,转载请注明原文链接:https://www.cnblogs.com/yxh168/p/18562221
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~