制作centos基础镜像的方法

 更新时间:2018年10月20日 15:22:13   作者:Terry.King  
这篇文章主要介绍了制作centos基础镜像的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

前言

现在我所在的公司使用的操作系统都是centos7.4版本的, 当然应用也是部署在centos上面, 那么如果使用docker部署的话, 也自然而然的想到基于centos镜像来构建自己的应用镜像; 但是centos基础镜像与应用镜像之间也可以构建一下基础框架的镜像, 比如: 基础JDK镜像, 基于Python环境镜像等等; 相信大家也遇到过, 构建了一个镜像发现部署应用的时候打印出来的中文是乱码, 日志的时间显示的是UTC时间, 比北京时间少了8个小时, 想看某一个进程是否起来的时候发现telnet命令 ps命令 netstat命令不可用, 想要编辑文件的时候发现vim命令也不能用; 今天我们就来看一下如何基于centos镜像构建一个增强版的centos镜像;

镜像仓库的搭建

在构建自己的镜像之前, 需要有一个地方能够存放我们的镜像便于我们后面使用直接拿来可以用; 大概有两种思路: 第一种、在自己的机器上构建, 然后通过命令 docker save -o xxx.tar.gz xxx-image:v1.0 , 然后上传到自己的云盘上, 使用的时候下载到本地, 然后 docker load -i xxx.tar.gz ; 这种方式是没问题的, 但是就是比较繁琐(打包,上传下载,load的时候还要找到目录神马的); 第二种、创建自己的一个docker image registry, 对于本地构建的镜像 只需要重新 tag一下, docker push即可完成;下载的时候只需要docker pull就可以了, 全部都可以在命令行上面搞定, 想想都有一种裤裤的感觉;

说了这么多, 让我们一起看一下如何搭建一个自己的镜像仓库;(本文中仅仅使用了阿里云的仓库, 建了自己的namespace而已),当然也可以自己申请云主机, 然后搭建私服都是没有问题的;

首先登录阿里云, 然后从服务中找到容器镜像服务所在的位置, 如下图所示:

点击容器镜像服务进入到镜像仓库创建界面如下图

点击创建, 进入到创建仓库界面

填写完信息之后, 点击下一步选择如何上传镜像

因为我的需求就是从本地仓库构建, 不过我认为本地仓库构建是最灵活的一种方式;

创建好镜像存储的位置之后, 就可以在本地创建Dockerfile来构建自己的镜像了;

构建centos增强版镜像

1、首先, 创建Dockerfile文件, 将如下内容放入文件中

FROM centos
MAINTAINER terry.king "1575639478@qq.com"

# 定义时区参数
ENV TZ=Asia/Shanghai
RUN ls -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo '$TZ' > /etc/timezone
# 设置编码
RUN localedef -c -f UTF-8 -i zh_CN zh_CN.utf8
ENV LC_ALL "zh_CN.UTF-8"

# 安装基础yum包
RUN yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel patch net-tools iproute telnet bind-utils wget kde-l10n-Chinese glibc-common

2、登录阿里云Docker Registry

sudo docker login --username=你的阿里云账号 registry.cn-shenzhen.aliyuncs.com

用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

您可以在产品控制台首页修改登录密码。就是第二张创建镜像仓库按钮的左边设置registry登录密码

3、构建镜像并将镜像推送到Registry

$ docker build -t terrylmay/centos .
$ docker tag terrylmay/centos registry.cn-shenzhen.aliyuncs.com/terrylmay/centos:[镜像版本号]
$ docker push registry.cn-shenzhen.aliyuncs.com/terrylmay/centos:[镜像版本号]

默认的镜像版本号为latest

总结

这样在构建应用镜像的时候就可以解决序言中提到的一系列问题了. 方便自己快速构建自己的应用镜像;

相关文章

  • linux环境下安装mysql8.0过程介绍

    linux环境下安装mysql8.0过程介绍

    大家好,本篇文章主要讲的是linux环境下安装mysql8.0过程介绍,感兴趣的同学赶快来看一看,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Linux的Socket IO模型趣解

    Linux的Socket IO模型趣解

    这篇文章主要通过一个幽默的方式为大家详细介绍了Linux的Socket IO模型,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Linux中禁止用户修改/重置密码

    Linux中禁止用户修改/重置密码

    这篇文章主要给大家介绍了关于在Linux中禁止用户修改/重置密码的相关资料,文中给出了详细的示例代码供大家参考学习,对大家具有一定的参考价值,需要的朋友们下面跟着小编一起来看看吧。
    2017-06-06
  • apache虚拟主机中设置泛域名解析的方法

    apache虚拟主机中设置泛域名解析的方法

    apache虚拟主机中设置泛域名解析,主要是用到ServerAlias 的配置,供大家学习参考
    2013-02-02
  • 开启Selinux遇到的坑及解决

    开启Selinux遇到的坑及解决

    这篇文章主要介绍了开启Selinux遇到的坑及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • CentOS6.9下NFS服务安装配置教程

    CentOS6.9下NFS服务安装配置教程

    这篇文章主要为大家详细介绍了CentOS6.9下NFS服务安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • linux时间同步ntp服务的安装与配置

    linux时间同步ntp服务的安装与配置

    这篇文章主要介绍了linux时间同步ntp服务的安装与配置的相关资料,需要的朋友可以参考下
    2016-10-10
  • Linux运维基础交换分区和lvm管理教程

    Linux运维基础交换分区和lvm管理教程

    这篇文章主要介绍了Linux运维基础中的交换分区和lvm管理教程,附含源码示例,有需要的朋友可以借鉴参考下,祝大家共同学习共同进步
    2021-09-09
  • CentOS6.8单用户模式如何修改密码

    CentOS6.8单用户模式如何修改密码

    CentOS6.8单用户模式下如何修改密码?这篇文章主要为大家介绍了CentOS6.8单用户模式修改密码的详细步骤
    2017-06-06
  • ubuntu16.04自动设置行号的步骤详解

    ubuntu16.04自动设置行号的步骤详解

    这篇文章主要介绍了ubuntu16.04自动设置行号的步骤,文中给大家提到了Ubuntu vi设置行号的方法,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-08-08

最新评论