在上一篇文章中已介绍其使用教程,这里只说一些应用。
root@ovo:~# docker history --help
Usage: docker history [OPTIONS] IMAGE
Show the history of an image
Options:
--format string Pretty-print images using a Go template
-H, --human Print sizes and dates in human readable format (default true)
--no-trunc Don't truncate output
-q, --quiet Only show image IDs
想让CREATED BY 列完整显示,可以加上 --no-trunc 参数。直接在shell中看会比较乱,可以输出到文件查看,就比较直观了。以TensorFlow镜像id,效果如下:
docker history 21d1065bfe8f --no-trunc
这里显示有点不整齐,那是终端小的原因,自己调整一下界面就可以看到好的效果。
由于history中的命令是层级的,越晚运行的命令越在上面,为了更方便的阅读,使用tac命令让其翻转。自定义输出格式:–format:
docker history 21d1065bfe8f --format "table {{.ID}}\t{{.CreatedBy}}" --no-trunc
问题经过定位,发现后台代码的multipartfile类在执行transterto的方法时就发生了此异常,然而配置文件集中的multipartResolver以及encodingFilter均已经设置成了UTF-8,排除代码异常。kubectl exec进入到docker容器中进行查看时发现,文件在容器中也是中文文件名显示异常。查看docker容器编码格式:执行locale命令;可以看到当前编码格式为POSIX,而这种编码格式不支持中文
参考文献:https://www.cnblogs.com/z-belief/p/6148463.html
解决办法:locale -a查看容器所有语言环境。
C.UTF-8可以支持中文,只需要把容器编码设置为C.UTF-8即可。
1.临时修改:
locale -a查看容器所有语言环境
C
C.UTF-8
POSIX
接着这里是网上的解决方法:
LANG=C.UTF-8
然后再激活:
source /etc/profile
然而实际上这样显示是没有出问题了,但是我的hdfs命令却失效了!!!
如果提示command not find
然而发现不使用激活环境激活语句,直接也就可以看到中文正常显示了,或者使用这样进行环境变量的设置:
export LANG=C.UTF-8
当容器中其命令语句失效时,注意是否是使用了source /etc/profile语句.
2.永久修改:修改Dockerfile
在Dockerfile中添加一行
ENV LANG C.UTF-8
重新制作docker镜像,docker run -ti [镜像] 进入容器后执行locale发现编码格式已经被修改为C.UTF-8,之前出现的中文文件名乱码问题也没有了。
3.运行时直接UTF-8
运行的时候增加参数-e LANG=C.UTF-8即可。
例如:docker run -it --rm -e LANG=C.UTF-8 ubuntu:18.04
参考文献:https://blog.csdn.net/weixin_39153210/article/details/83617792
FROM centos
MAINTAINER maochengli
#设置系统编码
RUN yum install kde-l10n-Chinese -y
RUN yum install glibc-common -y
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
#RUN export LANG=zh_CN.UTF-8
#RUN echo "export LANG=zh_CN.UTF-8" >> /etc/locale.conf
#ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
使用 Docker build -t centos-zh . 构建一个新的镜像,这个镜像就支持中文了。
参考文献:
https://blog.csdn.net/whatday/article/details/103870042?utm_medium
https://blog.csdn.net/qq_20042935/article/details/105043400
https://github.com/davidstack/project_dockerfile/blob/master/cuda11/tensorflow/Dockerfile
https://blog.csdn.net/alionsss/article/details/105600573
https://www.cnblogs.com/z-belief/p/6148463.html
Docker命令手册
https://www.kancloud.cn/woshigrey/docker/945794
https://www.simapple.com/325.html
中文乱码问题
https://blog.csdn.net/fleaxin/article2
https://blog.51cto.com/fengwan/1891063