• 先查找pod中实际使用的镜像

 命令:k describe pod pod名称 -n 命名空间名称

主要看containers->custom-image->image

例如我上面的图查找的镜像的值就是182.119.85.68:35000/user/generaltable:1.0.1

  • 用docker运行一个一次性的容器用来复制镜像中的某个文件代码到本地

此步骤分为两步,先创建一个新的目录,然后将文件复制到此空目录中。

创建一个新的目录table_bug

命令:mkdir  table_bug

然后进入此目录

命令: cd table_bug/

执行启动容器并复制镜像的某个文件命令

命令:docker run -it --rm -v $(pwd):/app/work 镜像地址 cp 复制的文件地址 /app/work/

如:(执行完成后,执行ls就可以看到index.py就在当前目录了)

docker run -it --rm -v $(pwd):/app/work 182.119.85.68:35000/user/generaltable:1.0.1 cp /root/app/index.py /app/work/
  • 修改本地代码

执行vim修改当前的index.py文件。修改完成后记得保存。

如果想看代码的行数,在vim的命令模式执行: set nu

如果想看代码的格式空格符或者是tab符号是否正确,在vim的命令模式执行: set list

  • 重新写一个新的Dockerfile,用来替换镜像中的代码

命令:vim Dockerfile

新建文件后,在文件中填入以下命令

FROM 182.119.85.68:35000/user/generaltable:1.0.1
ADD index.py /root/app/index.py

#该命令的意思是将本地的index.py文件复制到容器中的/root/app/index.py中,简单来说就是将本地的index文件替换容器中的文件

然后保存文件

  • 重新构建镜像

命令为:docker build .   --tag=182.119.85.68:35000/user/generaltable:1.0.1

#注意:版本要一致,不然到时候重启拉取的还是之前的镜像,这样替换就没有用了。

  • push镜像到仓库

命令:docker push 182.119.85.68:35000/user/generaltable:1.0.1

  • 删除pod

命令:k delete pod pod名称 -n 命名空间名称

  • 进入新的pod,查看pod中的代码是否已经更换完毕

命令:k exec -it 新pod名称 -n 命名空间名称 bash

查看文件

命令:vim /root/app/index.py

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐