Docker解决终端无法输入中文的问题

 更新时间:2020年08月10日 09:50:21   作者:MySQL技术  
这篇文章主要介绍了Docker解决终端无法输入中文的问题,帮助大家更好的理解和学习docker的用法,感兴趣的朋友可以了解下

前言:

某日在docker里搭建了一套MySQL服务,发现在MySQL命令行内无法输入中文 中文显示也以?代替,起初以为是MySQL字符集的问题 检查之后未解决问题,又退出到容器终端 发现同样不能输入中文,由此推断 是系统字符集出现问题,现将解决过程记录如下:

未解决前:

# 进入容器 查看字符集
[root@master2 ~]# docker exec -it b18f56aa1e15 /bin/bash
root@b18f56aa1e15:/# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
# 查看容器支持的字符集
root@b18f56aa1e15:/# locale -a
C
C.UTF-8
POSIX

不能输入中文原因:系统使用的是POSIX字符集,POSIX字符集是不支持中文的,而C.UTF-8是支持中文的 只要把系统中的环境 LANG 改为"C.UTF-8"格式即可解决问题

只要这样进入容器即可输入中文: docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash

[root@master2 ~]# docker exec -it b18f56aa1e15 env LANG=C.UTF-8 /bin/bash
root@b18f56aa1e15:/# 你好
root@b18f56aa1e15:/# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 80
Server version: 5.7.17-log MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 你好

注意:

这样修改只是临时修改。要永久修改,需要在创建容器时在dockerfile中设置。
K8s进入pod不能输入中文 也可用此方法解决。

以上就是Docker解决终端无法输入中文的问题的详细内容,更多关于docker解决无法输入中文的资料请关注脚本之家其它相关文章!

相关文章

  • docker-compose java.net.UnknownHostException问题

    docker-compose java.net.UnknownHostException问题

    这篇文章主要介绍了docker-compose java.net.UnknownHostException问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 使用docker环境变量动态配置nginx的问题小结

    使用docker环境变量动态配置nginx的问题小结

    这篇文章主要介绍了使用docker环境变量动态配置nginx,整个方案,采用的是通过docker run -e xxxx=xxx先往容器注入环境变量,然后进一步通过envsubst指令将环境变量写入到具体的文件当中,实现动态配置文件内容,需要的朋友可以参考下
    2022-06-06
  • docker 安装部署多个MySQL的实现步骤

    docker 安装部署多个MySQL的实现步骤

    本文主要介绍了docker 安装部署多个MySQL的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Docker 中的挂载机制详解

    Docker 中的挂载机制详解

    Docker 的挂载机制允许将宿主机的文件或目录挂载到 Docker 容器内部,这样容器就可以访问宿主机上的文件系统,本文给大家介绍Docker 中的挂载机制,感兴趣的朋友跟随小编一起看看吧
    2024-03-03
  • Docker 教程之Docker Hub详细介绍

    Docker 教程之Docker Hub详细介绍

    这篇文章主要介绍了Docker 教程之Docker Hub详细介绍的相关资料,需要的朋友可以参考下
    2016-12-12
  • 使用Docker构建开发环境的方法步骤( Windows和mac)

    使用Docker构建开发环境的方法步骤( Windows和mac)

    利用Docker,我们可以做很多事情。所以本文就详细介绍了使用Docker构建开发环境的方法步骤,分为 Windows和mac版本,具有一定的参考价值,感兴趣的可以了解一下
    2021-12-12
  • Docker部署golang环境详解

    Docker部署golang环境详解

    最近想学习一下golang,自己之前一直把环境全部安装在docker上,所以这次也想把golang的环境安装在docker上,先不废话,直接上手
    2022-08-08
  • Docker底层技术Namespace Cgroup应用详解

    Docker底层技术Namespace Cgroup应用详解

    在本篇文章里小编给大家整理的是关于Docker底层技术Namespace Cgroup应用的相关知识点,需要的朋友们学习下。
    2019-10-10
  • 如何使用docker搭建chromium

    如何使用docker搭建chromium

    这篇文章主要介绍了如何使用docker搭建chromium,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • 如何在docker中运行springboot项目过程图解

    如何在docker中运行springboot项目过程图解

    这篇文章主要介绍了如何在docker中运行springboot项目过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论