Docker 镜像制作实战:设置时区和系统编码

欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
- 在制作 Docker 镜像时常用 centos 的官方镜像作为基础镜像,这些基础镜像的时区和系统编码都不满足我们的需求,我们需要时区 CST,系统编码 UTF-8,今天我们就来实战制作一个 Docker 镜像,将时区和系统编码设为我们想要的,今后其他镜像就能以此作为基础镜像,不用再关注时区和系统编码问题了 ; 
先看现状
- 先来看一下 centos 官方镜像的情况: 
- 在装好了 docker 的机器上执行 docker run ---name centos001 -idt centos:7,即可启动一个 centos 官方镜像的容器; 
- 执行命令 docker exec -it centos7001 /bin/bash,进入容器内; 
- 执行命令 date,可见当前容器时区为 UTC,如下: 
- 执行命令 locale,可见当前系统编码,如下: 
- 以上就是现状,接下来我们看如何制作镜像,使得时区和系统编码都被设置好; 
定制镜像
- 时区和系统编码设置都在制作镜像的时候完成,所以我们要把镜像做出来: 
- 创建 Dockerfile 文件,内容如下: 
- 在 Dockerfile 文件所在目录执行命令 docker build -t bolingcavalry/centos7-cst-utf8:0.0.1 .,即可完成镜像制作,如下: 
体验新的镜像
- 执行命令 docker run --name centos002 -idt bolingcavalry/centos7-cst-utf8:0.0.1,基于刚刚构建的镜像来创建一个容器; 
- 执行命令 docker exec centos002 date,让容器显示当前时间信息,如下所示,已经是 CST 时区,并且中文可以正常显示: 
- 执行命令 docker exec centos002 locale,让容器显示当前系统编码,如下所示: 
- 至此,新镜像的制作和验证已完成,希望这些细微的改动能为您在定制镜像时提供一些参考,把这类改动提前做到基础镜像中,而不必留到业务镜像或者容器启动后去处理; 
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/b69508722af1a5c21cc22bceb】。文章转载请联系作者。












 
    
评论