You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Kubernetes运行容器的源代码并生成新镜像避免修改丢失?

操作步骤

1. 导出容器内修改后的源代码

你修改的代码全部存放在容器的/app目录下,直接用kubectl cp命令把整个目录拷贝到本地:

# 替换<your-pod-name>为你实际运行的Pod名称
kubectl cp <your-pod-name>:/app ./voting-app-modified -c voting-app

执行完成后本地会生成voting-app-modified目录,里面就是你修改后的全部代码。

2. 构建并推送新的自定义镜像

  1. 将你获取到的Dockerfile放到刚才导出的voting-app-modified目录根路径下
  2. 执行构建命令,替换镜像名为你自己的镜像仓库地址和自定义标签:
# 示例用dockerhub仓库,可替换为私有镜像仓库地址
docker build -t your-repo/voting-app:modified-v1 .
  1. 构建完成后推送到镜像仓库,保证Kubernetes集群可以拉取到该镜像:
docker push your-repo/voting-app:modified-v1

3. 更新Deployment使用新镜像

两种常用更新方式二选一即可:

方式1:直接编辑Deployment配置

kubectl edit deployment voting-app-deploy

找到spec.template.spec.containers下的image字段,将原有镜像地址替换为新构建的镜像地址,保存退出后K8s会自动滚动更新Pod。

方式2:用kubectl set命令一键更新

kubectl set image deployment/voting-app-deploy voting-app=your-repo/voting-app:modified-v1

更新完成后验证新Pod运行正常,访问服务确认修改已经生效即可,后续重建Deployment都会保留你的代码修改。

注意事项

以上方法适合临时测试场景,生产环境建议将修改后的代码上传到Git等版本控制系统,通过CI/CD流水线自动构建镜像,保证变更可追溯、可回滚。


内容的提问来源于stack exchange,提问作者Kaio H. Cunha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 12:57:04