在Docker容器中安装黑体字体,python使用matplotlib画图显示中文和负号
首先,需要自己准备好干净的SimHei.ttf文件,如果没有可以去下面链接下载
链接: https://pan.baidu.com/s/1VldFqdU_kSX9iavNNwKncA 提取码: 0416
先创建容器,因为需要将外部的tff文件放到容器内部,在创建容器的时候,需要挂载外部目录
docker run -it -v(挂载目录) /mnt(外部目录):/mnt(内部目录)镜像名:版本号 /bin/bash
进入容器
docker exec -it 容器id /bin/bash
fc-list 查看所有安装的字体
如果 fc-list 是空,说明系统中没有安装任何字体,就需要先安装字体
安装字体包
apt-get update && apt-get install -y fontconfig fonts-wqy-zenhei
更新字体缓存
fc-cache -fv

在更新缓存后,找到倒数第二行,带有.cache的路径,进入cd /root/.cache/ matplotlib
将外部的SimHei.ttf文件复制到当前目录下

找到fontlist-v330.json 文件,vi打开此文件,找到ttflist

如果没有SimHei.ttf这个字典,那么就复制上面一个,将fname的values改成SimHei.ttf的绝对路径
然后再使用fc-cache -fv 更新字体缓存
更新完了之后可以测试一下中文字体是否可用
简单测试样例
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.text(0.5, 0.5, '测试)
plt.savefig('./1.png')
或者
进入容器,检查字体是否可用:
fc-list | grep "SimHei"
最后:检查可用后,退出容器,一定要重新打包镜像!!!!(如果不重新打包镜像,容器重启之后将会前功尽弃)
打包镜像
docker commit 容器id 新镜像名:版本号
更多推荐



所有评论(0)