修改k8s中正在运行的pod中的代码(python、历史项目、历史bug)
修改k8s中正在运行的pod中的代码
-
先查找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
更多推荐
所有评论(0)