首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DockerUbuntu14.04容器中将locales配置为Unicode?

如何在DockerUbuntu14.04容器中将locales配置为Unicode?
EN

Ask Ubuntu用户
提问于 2015-02-04 02:38:01
回答 5查看 51.6K关注 0票数 33

我使用Docker安装了一个Ubuntu信任容器,当我连接到它时,我可以看到区域设置为最小值:

代码语言:javascript
复制
sudo docker run -i -t <id> /bin/bash
root@<id>:/# 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=

我需要使用Unicode语言环境(例如,美国英语语言,en_US.UTF-8)。

我尝试编辑/etc/default/locale文件,并将其放入其中:

代码语言:javascript
复制
# cat /etc/default/locale 
LANG=en_US.UTF-8

但是,即使在离开容器并返回之后,区域设置仍然没有正确设置。

我还尝试使用update-locale命令,但没有成功:

代码语言:javascript
复制
root@cab13a6abe4f:/# update-locale LANG=en_US.UTF-8
root@cab13a6abe4f:/# 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=

在我的本地配置中,我有以下配置:

代码语言:javascript
复制
LANG=en_US.UTF-8
LANGUAGE=en_US
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=en_US.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=

我的码头集装箱里怎么能有同样的东西呢?

提前感谢!

EN

回答 5

Ask Ubuntu用户

回答已采纳

发布于 2015-02-05 23:10:51

/etc/default/locale文件由PAM加载;例如,请参见/etc/pam.d/login。但是,在Docker容器中运行命令时不会调用PAM。要配置区域设置,只需在Dockerfile中设置相关的环境变量即可。示例:

代码语言:javascript
复制
FROM ubuntu:trusty
ENV LANG en_US.UTF-8
CMD ["/bin/bash"]
票数 22
EN

Ask Ubuntu用户

发布于 2015-03-26 10:02:31

我在我的Dockerfile中使用这个:

代码语言:javascript
复制
# Set the locale
RUN locale-gen en_US.UTF-8  
ENV LANG en_US.UTF-8  
ENV LANGUAGE en_US:en  
ENV LC_ALL en_US.UTF-8

您还可以使用ENV一行:

代码语言:javascript
复制
RUN locale-gen en_US.UTF-8
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en' LC_ALL='en_US.UTF-8'
票数 56
EN

Ask Ubuntu用户

发布于 2016-09-21 22:27:18

试一试

代码语言:javascript
复制
ENV LANG C.UTF-8

如果您得到了unsupported locale setting错误,并且不想安装任何新的区域设置。

票数 7
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/581458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档