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】。文章转载请联系作者。
评论