当前位置: 首页 > news >正文

docker 篇

简单描述下,有时候真的要熟练,否者上了生产真的不知所措。

背景:有个项目上线了,依赖的项目没有上线,因此需要紧急发布,发现:打包环境有问题,第一、架构不一致,第二、环境隔离导出镜像包慢,第三、本地打包dockerfile不一致导致加载配置有问题。

面对以上问题,我们需要知道的事

打包机器写死打包 amd,目标机器arm64,从而折腾了不少时间。

侧面说明对架构变换打包不熟练,对go 程序来说,打包docker镜像,只需要修改go build相关参数即可,具体为: GOARCH=arm64 GOOS=linux go build -ldflags="-s -w" 源文件 目标文件

在打包机器上生成的镜像需要导出,只需要知道镜像名,然后命令如下

docker save -o xxx.tar当然可以对xxx.tar进行压缩(如果包比较大的话)
gzip xxx.tar

接着就是下载下来,由于部分公司会存在跳板机的情况,因此需要先下载到跳板机,然后才能通过跳板机来下载文件到本地。其过程如下

跳板机执行
scp user@ip:/ddd/target.tar .然后本地sftp到跳板机 sftp user@ip 会车输入密码接着cd到跳板机相应目录,然后本机lcd到下载目录,直接get target.tar文件即可

拿到tar文件,需要把tar文件加载成docker镜像,以下命令

docker load -i target.tar

接着就是启动镜像容器

docker run -d --name xxx --restart=aways -v 本地目录:镜像目录  target/image 

当然还有很多参数可以配置,这个就需要熟练度了。

当此时,如果容器起不来,怎么办?譬如加载配置失败

因此有可能你需要进去容器把配置放到相应目录(在你没有把目录映射出来的时候)

即 docker exec -it 容器id /bin/bash 走不通,因为容器没起来,所以你可以通过镜像来进入修改docker run -it --entrypoint /bin/bash 镜像即可进入容器修改。

当然啦针对docker build编译不通架构镜像,我们可以通过

docker buildx build -t myimage:v1 --platform linux/arm64 .

来打包相应平台的包

上面其实涉及到的内容还算多吧,需要掌握一定的知识才能对当前遇到的问题做到心中有数,而心不乱。 

http://www.lryc.cn/news/409867.html

相关文章:

  • 汽车、能源、烟草、电力行业洞见:TDengine 用户大会亮点荟萃
  • 从零开始编写一个Chrome插件:详细教程
  • photoshop学习笔记——选区3 快速选择工具
  • Centos7下安装配置最新版本Jenkins
  • c++ 构造函数与析构函数
  • Lc63---1859将句子排序(排序)---Java版(未写完)
  • centos7-8/redhat7-8一键安装配置vsftp服务
  • 7月24日JavaSE学习笔记
  • 微信小程序教程008:事件绑定
  • 企业级-实现Nginx的静态文件服务器映射
  • CTF Web SQL注入 10000字详解
  • 动态SLAM:如何判断一个特征是动态特征(对极几何)
  • 【C++】初识C++基础篇·一(命名空间,函数重载,缺省参数,引用);
  • 2024年道路运输安全员考试题库及答案
  • Linux Vim教程(十二):语法高亮与代码折叠
  • JavaScript(18)——事件类型,事件对象
  • 有效组织离散变量:指针数组在C语言中的应用
  • qt 应用正在运行时,如何更新升级exe文件
  • git的rebase 和 merge 的区别
  • django基于大数据的电影推荐系统-计算机毕业设计源码71246
  • reverse_re3-入土为安的第十天
  • fastapi之一
  • 【C语言报错已解决】Format String Vulnerability
  • 关于一个简单的顺序表代码
  • 【资料分享】2024第三届钉钉杯大学生大数据挑战赛B题思路解析+双语言代码
  • Typescript学习笔记(2.0)
  • 【IJHE】:微通道反应器中全氢二苄基甲苯脱氢产氢
  • Spring踩坑:抽象类作为父类,使用子类@Autowired属性进行填充,属性值为null
  • C#网络连接:TCP/IP模式下的网络连接与同步
  • 基于树莓派(Raspberry Pi) 的智能电表监测系统设计:集成 Home Assistant、SQLite 和 MQTT 协议