一、CentOS 6.5上安装docker

在CentOS 6.5 还不能够直接通过yum install -y docker 来安装docker服务

在一些文档中有看到说是因为内核太低的原因导致的,因为docker至少要做3.8以上的版本才能安装,

但是我发现其实并不需要升级内核就可以实现docker的安装不过,也有可能我的安装存在偶然性,

但是我还是记录一下,以防日后忘记。


1.先查看下你的系统内核是多少

# uname -r

2.6.32-431.el6.x86_64

我的是CentOS 6.5,系统内核还不到3.8版本  


2.看看你的系统到底是什么

# cat /etc/issue

CentOS release 6.5 (Final)

Kernel \r on an \m

也可以用cat /etc/redhat-release查看


# cat /etc/redhat-release

CentOS release 6.5 (Final) 


有些网上材料说需要注意其他的源可能导致你的内核和docker的版本不一致,需要升级内核至3.x。


3.安装:  

# rpm -ivh http://dl.Fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Retrieving http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

warning: /var/tmp/rpm-tmp.JN76fI: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY

Preparing.。。 ########################################### [100%]

1:epel-release ########################################### [100%]

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6


4.尝试一下是否能安装上docker

# yum -y install docker-io lvm2 lvm2-devel


rpm -qa | grep docker

docker-io-1.7.1-2.el6.x86_64

竟然装上了 

 

5.启动并设置开机自动启动

# service docker start

Starting cgconfig service: [确定]

Starting docker: [确定]

# chkconfig docker on


6.获取CentOS镜像  

# docker pull centos:latest

centos:latest: The image you are pulling has been verified

511136ea3c5a: Pull complete

5b12ef8fd570: Pull complete

34943839435d: Downloading [===》 ] 18.38 MB/232.5 MB 1h7m49s


查看镜像

#docker images

REPOSITORYTAGIMAGE IDCREATEDVIRTUAL SIZE

centoslatest 3bea5ca0a170 7 days ago 192.5 MB


7.后面发现,内核版本并没有升级,也没有网上那些需要重启机器的步骤,因为有应用在机器上跑,为了不影响业务,所以我选择了上面不用重启机器的做法。

但是也有弊端,后面发现CentOS版本升级了,介意的同志们,建议别搞,哈哈哈!

# cat /etc/redhat-release

CentOS release 6.9 (Final)


# cat /etc/issue

CentOS release 6.9 (Final)

Kernel \r on an \m


二、docker内跑的部分应用出现乱码

如果你要在docker内跑一些你的应用,但是部分功能可能会出现乱码的现象,那可能可以通过一下方式来查看

1.首先你到你的tomcat设定档里修改一下你的设定

# vim /data0/work/tomcat/conf/server.conf

71 <Connector port="8080" protocol="HTTP/1.1"

72 connectionTimeout="20000"

73 maxThreads="1000"

74 minSpareThreads="100"

75 maxSpareThreads="300"

76 acceptCount="100"

77 redirectPort="8443"/>


在第77行增加 URIEncoding="UTF-8" 及内容如下:

71 <Connector port="8080" protocol="HTTP/1.1"

72 connectionTimeout="20000"

73 maxThreads="1000"

74 minSpareThreads="100"

75 maxSpareThreads="300"

76 acceptCount="100"

77 redirectPort="8443" URIEncoding="UTF-8" />

试一试应用还会不会乱码,如果还会,在你的docker里查看一下

2.如果通过1,你的应用页面还是乱码,那就查看一下你的JVM环境是否支持中文字符集

# java -XshowSettings:properties -version

Property settings:

awt.toolkit = sun.awt.X11.XToolkit

file.encoding = POSIX

file.encoding.pkg = sun.io

file.separator = /

java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment

…………………中间省略……………………………

user.timezone =

java version "1.8.0_101"

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13,mixed mode)

##重点看file.encoding = 什么语言


就是如果出现上面的情况,你就要修改tomcat的一些设定,让Java可以启用中文字符集

# vim /data0/work/tomcat/bin/catalina.sh

####增加一行 jvm

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -xms7168m -Xmx7168m -XX:NewSize=2048m -XX:MaxNewSize=2048m -XX:+disableExplicitGC"

保存退出


再次查看你的docker内的JVM环境是否支持中文字符集

# java -XshowSettings:properties -version

Property settings:

awt.toolkit = sun.awt.X11.XToolkit

file.encoding = UTF-8

file.encoding.pkg = sun.io

file.separator = /

java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment

……………………中间省略………………………

user.timezone =

java version "1.8.0_101"

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13,mixed mode)


如果还是不变,可以参考下面的做法3

3.修改配置,令docker支持中文字符集

查看你当前docker内使用的语言为什么

# locale

LANG=

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=

上面是我的docker环境内的支持语言POSIX(可移植性操作系统接口);网上有相关资料说这个好像不支持中文字符集


再次查看你的docker内有哪些可以按照的语言包

# locale -a

C

POSIX

en_US.utf8

上面可以知道,我的这个docker里语言包不多,但是也有中文字符集的支持,那用它就可以了


查看docker本地设置的语言包是什么

# cat /etc/locale.conf

LANG="en_US.UTF-8"

但是使用locale查看,却还是不显示


那可能你可以这么做

vim /etc/profile

##添加一行language

export LANG=en_US.UTF-8

保存退出

让刚刚的设定生效

source /etc/profile


再次查看你的docker内的语言

root@eb0e4965f28d /]# locale

LANG=en_US.UTF-8

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_US.UTF-8


再次查看你的docker内的JVM环境

# java -XshowSettings:properties -version

Property settings:

awt.toolkit = sun.awt.X11.XToolkit

file.encoding = UTF-8

file.encoding.pkg = sun.io

file.separator = /

java.awt.graphicsenv = sun.awt.X11GraphicsEnvironment

…………………………中间省略……………………………

user.timezone =

java version "1.8.0_101"

Java(TM) SE Runtime Environment (build 1.8.0_101-b13)

Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13,mixed mode)

竟然file.encoding也变成了UTF-8

所以归根结底是要解决系统语言的问题,最终来处理应用乱码的问题。


以上的做法都是我在实际情况下处理过的,当然也不排除偶然性,所以有错也请大家指出,大家一起进步哈!

CentOS 6.5上安装docker与docker对中文字符集的支持的更多相关文章

  1. Swift 后端开发

    作为一门新兴的现代化语言,Swift可以说是苹果在开发语言上的一次集大成之作,吸收了很多语言的优点。而且苹果还期望Swift能在服务端开发上能发挥作用。Perfect框架Perfect框架是Swift开发的Web应用服务器,它支持包括Redis、sqlite、Postgresql、MysqL、MongoDB、FileMaker这样的数据库,并且能以fastcgi或者Web服务器的形式提供服务。具体内容得到Swift源代码中可以找到。

  2. Swift构建总是在Docker中构建整个包

    使用像这样的Dockerfile时:当第3步运行时,swiftbuild将只编译应用程序一次,因为第二次执行将只使用已构建的对象,输出将是单个CompileSwiftModule’foo'然而,在运行第4步时,它似乎忽略了已经构建的任何东西,并重新重建整个事物,尽管没有任何改变且没有干净.我试过运行RUNls/foo/.build&&ls/tmp,一切似乎都到位了.我想要在现实中实现的是设置我的图像所以我首先从git克隆项目,构建它,然后copY在本地机器的任何变化中构建新的更新,但最终建立整个项目2次.

  3. 在Android上使用Docker

    是否可以在Android上构建Docker应用程序?我注意到现在没有,但内核毕竟是基于Linux内核的.如果有办法在没有生根的情况下做到这一点,那就更好了!是否有可能为Android创建Docker应用程序?如果是这样,有没有人知道任何进展?

  4. CentOS 8.2服务器上安装最新版Node.js的方法

    这篇文章主要介绍了CentOS 8.2服务器上安装最新版Node.js的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. Docker 如何布置PHP开发环境

    本文主要介绍了如何使用Docker构建PHP的开发环境,文中作者也探讨了构建基于Docker的开发环境应该使用单容器还是多容器,各有什么利弊。推荐PHP开发者阅读。

  6. centos+php+coreseek+sphinx+mysql之一coreseek安装篇

    这篇文章主要介绍了centos+php+coreseek+sphinx+mysql之一coreseek安装篇的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下

  7. 一篇文章教会你部署vue项目到docker

    在前端开发中,部署项目是我们经常发生的事情,下面这篇文章主要给大家介绍了关于部署vue项目到docker的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

  8. PHP 应用容器化以及部署方法

    本文给大家分享的是如何把PHP应用容器化,以及使用docker在服务器上部署PHP应用,非常的简单实用,有需要的小伙伴可以参考下

  9. Centos7 中 Node.js安装简单方法

    这篇文章主要介绍了Centos7 中 Node.js安装简单方法,非常不错具有一定的参考借鉴价值,需要的朋友可以参考下

  10. nodejs脚本centos开机启动实操方法

    在本篇文章里小编给大家整理的是关于nodejs脚本centos开机启动实操方法,有兴趣的朋友们参考下。

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部