linux doker 修改容器内部文件的方法

linux doker 修改容器内部文件的方法

以django 启动报错作为示例来说, 错误信息内容如下:

File "/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/operations.py", line 146, in last_executed_query\n    
query = query.decode(errors=\'replace\')\n
AttributeError: \'str\' object has no attribute \'decode\'

解决办法:

1. 直接进入容器修改

将容器内/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/operations.py文件的146行中的query.decode改为 query.encode即可。

如果容器内没有vim 或者vim安装起来不是很方便,可以采用方法二,利用宿主机的vim 来进行文件修改

2. 在宿主机修改容器内部文件

  • 将容器内文件拷贝到宿主机指定目录下
# 语法:
docker cp 容器名称:容器内文件路径 要拷贝到宿主机的文件路径

# 示例:
docker cp web_api:/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/operations.py ./
  • 宿主机上vi修改编辑文件
# 将operations.py的146行中的query.decode改为 query.encode, 如上图所示
  • 将宿主机文件重新拷贝回容器内
# 语法
docker cp 宿主机文件目录 容器名称:要拷贝到容器内的目录

# 示例:
docker cp ./operations.py web_api:/usr/local/lib/python3.6/site-packages/django/db/backends/mysql/operations.py
  • 重启容器
docker restart web_api
posted @   不懂开发的程序猿!  阅读(547)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示