Docker commit 以官方镜像为基础,修改参数后,变为自己个性镜像- eg:将镜像时区UTC修改成CST

网友投稿 285 2022-10-22

Docker commit 以官方镜像为基础,修改参数后,变为自己个性镜像- eg:将镜像时区UTC修改成CST

描述:工作中需要写Dockerfile制作镜像,发现生成的镜像都是700M左右,为了更小更方便的制作镜像,看了一些文件,其中​​高效编写Dockerfile的几条准则​​,仅为参考。

下面是自己摸索出来的一个方法,简单有效:

​步骤:下载官方最小镜像,然后运行,经过修改参数,配置,时区等内容,后用这个容器创建一个新的自己的镜像。​

具体步骤:以tomcat为例:

第一步骤下载镜像:

官方默认的tomcat,大小是147M,时区是UTC是协调世界时(Universal Time Coordinated),不是我们需要的,而CST却同时可以代表如下 4 个不同的时区,我们只需要配置China Standard Time就OK了。

Central Standard Time (USA) UT-6:00

Central Standard Time (Australia) UT+9:30

​China Standard Time UT+8:00​

Cuba Standard Time UT-4:00

docker pull tomcat:7-alpine

第二步骤启动tomcat镜像,并指定容器和主机的映射端口:

docker run -p 8080:8080 tomcat:7-alpine

正常启动后,可以访问:localhost:8080

第三步骤进入容器,查看默认时间:

#查看运行的全部容器sai$ docker ps -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES949fdc1d4001 tomcat:7-alpine "catalina.sh run" 3 minutes ago Up 3 minutes 0.0.0.0:8080->8080/tcp sad_thompson#拿到CONTAINER ID 然后进入正在运行容器并以命令行交互sai:$ docker exec -it 949fdc1d4001 /bin/sh#进入容器后,查看容器时间date/usr/local/tomcat # dateWed Aug 1 07:59:21 UTC 2018/usr/local/tomcat #

第四步骤修改容器默认时间UTC修改成CST:

Shanghai时区时间,在centos中/usr/share/zoneinfo/Asia可以拿的,百度盘也放了一份

链接:​​​密码:xwme

#首先从主机复制时间文件到容器sudo docker cp host_path containerID:container_pathdocker cp Shanghai 949fdc1d4001:/etc/localtime#然后再修改时区,注意,要进入容器内执行:echo "Asia/Shanghai" > /etc/timezone#然后再查询下/usr/local/tomcat # cat /etc/timezone

第五步骤,Docker commit 命令 根据已修改的容器创建一个新的自己的镜像:

​​先普及下知识​​

#制作镜像-a 是作者,-m是描述sai:~ ws$ docker commit -a "Honglei" -m "change time zone:CST" 949fdc1d4001 honglei/mydemo/tomcat7:latestsha256:4355e2ccc12ebf8c2295e2fcded052152877359e292636f55eed3ed6d64c131d#查看制作后的镜像,以后再运行或者上传自己的镜像仓库,显示时间就是CST了。sai:~ ws$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhonglei/mydemo/tomcat7 latest 4355e2ccc12e 5 seconds ago 147MBtomcat 7-alpine 7ec7cfc3ee20 15 hours ago 147MB

以后在这个tomcat中运行项目,日志时间也是CST,不会再有时差。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java实现雪花算法的示例代码
下一篇:Docker :::::net/http: TLS handshake timeout
相关文章

 发表评论

暂时没有评论,来抢沙发吧~