Docker alpine 添加cst时区并发布镜像到docker.io

本来准备用scratch来运行golang程序的,运行是可以但是遇到了时区的问题,且scratch是一个空镜像也不方便做定制化

alpine是精简版镜像(约5.6M),虽然默认不带timezone,但提供是包管理工具apk。也正是由于其精简性便于在alpine的基础上做定制化

测试看下alpine里的时间

docker pull alpine拉取镜像,再执行docker run --rm alpine date -R 查看alpine里的时间

看到时间后面的+0000就说明alpine默认是格林威治时间

解决办法在alpine基础上下载时区的一些配置,然后打包成新的镜像,镜像比alpine会稍微大2M左右,然后基于定制化的alpine基础上再build自己想要的镜像来解决时间问题,步骤如下:

一、创建Dockerfile

vi Dockerfile

复制以下内容保存退出

FROM alpine

# 设置时区为上海
RUN apk -U add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime     && echo "Asia/Shanghai" > /etc/timezone     && apk del tzdata

二、根据创建好的Dockerfile Build镜像

创建好Dockerfile后直接build,注意在镜像名称前面要加上你的dockerid(我的dockerid是nickchou),不然后面没法push

docker build -t nickchou/alpinecst .

build好之后查看build成功后的alpinecst镜像

docker images

三、把本地镜像alpinecst上传到hub.docker.com,便于跨服务器使用,不用每次都编译

先登录,填写账号密码,提示success说明登录成功(没有账号可以去注册一个 https://hub.docker.com/)

docker login

登录成功后把本地镜像push到官方

docker image push nickchou/alpinecst:latest

push成功的截图

登录自己的账户也可以看到镜像

push成功后可以退出登录

docker logout

四、测试镜像

先删除本地镜像,如果本地没有build的话跳过

docker rmi nickchou/alpinecst

重新远程拉最新镜像

docker pull nickchou/alpinecst

分别查看alpine和nickchou/alpinecst的时区

docker run --rm  alpine date -R
docker run --rm  nickchou/alpinecst date -R

看到nickchou/alpinecst时间后面的+0800就说明已经是东八区了

小结 :现在就可以基于这个镜像去发布golang等就不存在时区问题了,在Dockerfile第一行改为 FROM nickchou/alpinecst就可以用现成的了,当然你也可以自己打包一个。

步骤三里面的发布docker.io只是为了方便以后其他服务器也可以直接用,如果只有一台服务器,步骤三可以忽略

原文地址:https://www.cnblogs.com/nickchou/p/12705831.html

时间: 2024-10-10 10:54:52

Docker alpine 添加cst时区并发布镜像到docker.io的相关文章

docker学习笔记7:发布镜像到docker hub上

镜像创建好后,很重要的一个操作就是共享和发布.可以将自己创建的镜像发布到docker hub上,也可以发布到自己的私有docker hub上. 要想发布镜像到dokcer hub上,首先要在dokcer hub上注册账户,并且在本机(准备提交镜像到docker hub的机器上)上进行注册.具体过程如下: 1.登录 https://hub.docker.com/ 网站注册一个用户,如 jeme.注册时需要提供邮箱进行验证. 2.在本机用docker login 向docker hub注册(登录),

Docker使用小结(四)发布镜像

安装Docker后,启动docker [email protected]:/home/xxx/Documents# service docker start 停止docker命令 [email protected]:/home/xxx/Documents# service docker stop 查看运行的docker版本 [email protected]:/home/xxx/Documents# docker --version Docker version 18.09.7, build 2

Docker images详细介绍及管理制作镜像

Docker   images   介绍:      docker  images 是docker 的三大组件之一   docker把下载好的镜像上传到docker本地镜像仓库中,如果本地镜像仓库中不存在需要用到的镜像,docker会从一个镜像库中去下载所需镜像,默认的公共仓库是Docker HUB. Docker image 的内容:        使用和管理本地主机上images      创建一个基础的images      上传images到docker hub(公共images仓库)

五十三.Docker概述、部署Docker、Docker镜像、Docker基本命令

1.安装Docker 准备两台虚拟机,IP为192.168.1.10和192.168.1.20 安装docker-engine 和 docker-engine-selinux 关闭防火墙 ************************************** 配置两台虚拟机: 创建两台虚拟机后端盘: images] qemu-img create -f qcow2 -b node.qcow2 docker1.img 50G images] qemu-img create -f qcow2

Docker基础命令和时区问题

Docker 命令 1. 安装Docker # ubuntu系统安装 $ sudo apt install docker-ce # 启动docker $ sudo systemctl start docker # 开机启动docker $ sudo systemctl enable docker # 停止docker $ sudo systemctl stop docker 2.Docker常用命令&操作 1).镜像操作 操作 命令 说明 检索 docker search 关键字 eg:dock

43_Docker概述、部署Docker、Docker镜像、Docker基本命令

1.安装Docker准备两台虚拟机,IP为10.10.11.10和10.10.11.20安装docker-engine 和 docker-engine-selinux关闭防火墙 1.1 配置yum源 1)配置第三方yum源(真机操作)]# mkdir /var/ftp/docker]# mv docker-engine-* /var/ftp/docker]# ls /var/ftp/dockerdocker-engine-1.12.1-1.el7.centos.x86_64.rpmdocker-

Docker学习总结(12)——非常详细的 Docker 学习笔记

一.Docker 简介 Docker 两个主要部件: Docker: 开源的容器虚拟化平台 Docker Hub: 用于分享.管理 Docker 容器的 Docker SaaS 平台 -- Docker Hub Docker 使用客户端-服务器 (C/S) 架构模式.Docker 客户端会与 Docker 守护进程进行通信.Docker 守护进程会处理复杂繁重的任务,例如建立.运行.发布你的 Docker 容器.Docker 客户端和守护进程可以运行在同一个系统上,当然你也可以使用 Docker

Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器

我们知道,docker能实现应用打包隔离,实现快速部署和迁移.如果我们开发应用使用了spring cloud + spring boot架构,那么,通过docker-maven-plugin实现快速构建镜像并发布到远程docker服务器会非常方便.相关步骤参考如下: step1.开启docker服务器的tcp管理端口,这里以2375为例进行说明.具体的配置过程请参考另一篇博客:https://www.cnblogs.com/funnyboy0128/p/9983779.html step2.在本

RHCE之HTTPD+FTP+KickStart发布镜像,用于KVM的VM自动安装过程

最近在学习RHCE课程,上一篇简单的讲一下如何用HTTP来作为KVM的VM网络安装过程,请阅读:http://gshao.blog.51cto.com/3512873/1882093 今天讲到FTP+HTTP+KickStart发布,当然还有PXE安装RHEL(后续讲). 环境: 虚拟宿主机:RHEL 7.0 硬件:4vCPU+8G+40Gdisk IP地址:172.16.38.10 vnet ip地址:192.168.100.1 先截图上一篇装完rhel系统的样子: 回归到正文,今天讲HTTP