解决 Docker Image的UTF-8中文字符集的问题(以Oracle为例)

时间:2021-12-18 06:57:06

最近因业务需要,需要搭建一个Oracle数据库,当然Oracle数据库支持Linux,但是在上面搭建很是复杂,所以我想起了Docker ,果然在上面发现了一个OracleDB的镜像,所以下载之,运行,登录什么的都正常,但是这个镜像不支持中文字符集,所以为了更好的使用,下面使用Dockerfile文件构建了一个简单的Docker镜像,文件内容如下:

构建镜像文件

这里使用Oracle镜像作为参考,如果你有其他的Image需要天剑UTF-8字符集支持,也可以参考下面的构建脚本.

FROM wnameless/oracle-xe-11g:latest
MAINTAINER Zhoutao

RUN apt-get update
RUN apt-get install -y locales
RUN locale-gen zh_CN
RUN locale-gen zh_CN.utf8
RUN update-locale LANG=zh_CN.UTF-8 LC_ALL=zh_CN.UTF-8 LANGUAGE=zh_CN.UTF-8

ENV LANG zh_CN.UTF-8
ENV LANGUAGE zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8

主要解释下命令:

  • FROM 表示该镜像依赖于wnameless/oracle-xe-11g:latest
  • MAINTAINER 当前镜像的维护者信息
  • RUN 在构建镜像的时候运行的命令 这里主要是安装字UTF-8以及中文字符集并设置
  • ENV 表示设置系统级环境变量

构建完成之后,使用DataGrip或者Dbearver 来连接到Oracle即可解决Docker Images不支持中文字符集的问题.当然这是一种通用的解决方案,如果你需要修改其他镜像也是可以参考这个Dockerfile文件的.

Ps: 其他的操作和账户等信息可以参考链接 https://www.cnblogs.com/Jin520304/p/7884441.html 这里主要是解决Docker Oracle对UTF8 以及中文支持不友好的问题.