docker 篇

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

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

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

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

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

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

bash 复制代码
docker save -o xxx.tar

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

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

bash 复制代码
跳板机执行
scp user@ip:/ddd/target.tar .

然后本地sftp到跳板机 sftp user@ip 会车输入密码

接着cd到跳板机相应目录,然后本机lcd到下载目录,直接get target.tar文件即可

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

bash 复制代码
docker load -i target.tar

接着就是启动镜像容器

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

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

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

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

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


docker run -it --entrypoint /bin/bash 镜像

即可进入容器修改。

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

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

来打包相应平台的包

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

相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS1 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏2 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
玉&心2 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing2 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
-梅2 天前
linux(8) 软硬链接
linux·运维·服务器
赵文宇(温玉)2 天前
CoreDNS的hosts插件的缺行配置导致k8s集群异常
容器·kubernetes·rancher
guo_wen_qiang2 天前
上传本地镜像到harbor中
docker·容器·持续部署
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github