Windows 系统下管理 docker 容器,我们一般用 PowerShell 或 Cmd,要进入 php 容器输入 docker exec -it php-fpm /bin/bash 即可。在容器中使用 vi 编辑文件时,如果开启了语法高亮功能,会出现很多框框,如下:

这些框框并不是中文乱码,而是因为 Windows 系统的 PowerShell 或 Cmd 终端无法正常解析颜色代码造成的。

作为程序员,通常我们会安装 Git,而 Git 附带了一个 winpty.exe 的终端程序,用它可以正常解析颜色代码。

假设 Git 安装在 D:\Program Files\Git,那么 winpty.exe 的路径就是 D:\Program Files\Git\usr\bin\winpty.exe 。

我们新建一个 .bat 文件,填入内容(路径有空格要加双引号):

"D:\Program Files\Git\usr\bin\winpty.exe" docker exec -it php-fpm /bin/bash

运行这个 .bat 文件就可以直接进入容器了。使用 winpty.exe 后,vi 编辑文件不会出现框框了,效果如下:

关于终端颜色代码介绍,参考阅读:https://www.jianshu.com/p/790fc612aaa5