制作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

总结

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

(0)

相关推荐

  • CentOS 6.5 制作可以ssh登录的Docker镜像

    Docker使用系列一我们把镜像源改为了阿里云的,方便后续的操作. 执行这个命令就把源地址改为阿里的: 复制代码 代码如下: curl https://git.oschina.net/feedao/Docker_shell/raw/start/ali-centos.sh | sh 第一安装Docker: yum -y install docker-io 第二启动Docker: service docker start 第三安装制作CentOS镜像的工具: yum -y install feboo

  • 制作centos基础镜像的方法

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

  • Docker制作Python运行环境基础镜像的方法步骤

    一.准备工作 1.1 Python安装包的下载(说明:python版本可根据自己需求更换) 官网下载:https://www.python.org/downloads/source/ 本地下载地址:64位:https://www.jb51.net/softs/416037.html 32位:https://www.jb51.net/softs/543679.html 1.2基础镜像Ubuntu16.04 DockerHub拉取 docker pull ubuntu:16.04 本地Ubuntu下

  • 从零开始构建docker基础镜像的方法

    段子 今年基本已经结束了,我问了很多朋友今年挣钱了没?大多朋友都有挣,而且挣得五花八门:有挣个屁的,有挣个锤子的,有挣个毛的,更有甚者挣个妹的,奢侈之极!最恐怖的是挣个鬼的!有的还可以,挣个球,下午我碰见一朋友,问今年挣了吗?他望着天空喃喃自语:挣个鸟!看吧,只要肯努力,什么都能挣到. 年末将至,忽然发现,从创建开始到现在,整整一年时间,没有写过多少东西.为了留下一点痕迹,也是为了整理一下自己的收获,为17年画上一笔浓郁的色彩. 最近在看一本入门级机器学习的书,里面的案例基本上是python实现

  • docker Dockerfile文件制作自己的镜像的方法

    1.创建空目录 $ cd /home/xm6f/dev $ mkdir myapp $ cd myapp/ 2.vim Dockerfile,内容如下: ## 一个基础的 python 运行环境 FROM python ## 设置工作目录 WORKDIR /app ## 将当前系统文件夹内容复制到容器的 app 目录 ADD . /app ## 安装必要的依赖包 RUN pip install -r softwares.txt ## 开放端口,供容器外访问 EXPOSE 80 EXPOSE 30

  • dockerfile制作apache镜像的方法

    一.Docker镜像 1.1 docker镜像 应用的是发布的标准格式 支撑一个docker容器的运行 1.2 docker镜像的创建方法 基于已有的镜像创建 基于本地模板创建 基于Dockerfile创建 Docker镜像是分层的结构 ①Dockerfile中的每个指令都会创建一个新的镜像层 ②镜像层将被缓存和复用 ③当Dockerfile的指令修改了,复制的文件变化了,或者构建镜像时指定的变量不同了,对应的镜像层缓存就会失效 ④某一层的镜像缓存失效之后,它之后的镜像层缓存都会失效 ⑤镜像层是

  • Docker中Dockerfile制作镜像的方法步骤

    目录 1.基于容器制作 2. 基于Dockerfile制作镜像 2.1 Dockerfile命令 2.2 简单示例 docker 镜像的制作,可以基于容器创建镜像,也可基于 dockerfile 构建镜像.但需要注意的是,我们并不是真正"创建"新镜像,而是基于一个已有的基础镜像,如 centos 或 ubuntu 等,构建新镜像而已. 1.基于容器制作 联合文件系统(UnionFS)挂载提供了容器的文件系统,任何对容器内文件系统的改动都会被写入到新的文件层中,这个文件层归创建它的容器所

  • 利用Dockerfile制作java运行环境的镜像的方法步骤

    当前用到的环境是: Centos 7.5 docker-ce 18.06.1-ce 1.先用centos7.5.1804的基础镜像把一些运行需要的环境装好 在/app目录下创建相对应的文件目录 [root@node2 /app/]# mkdir dockerfile/{web/{nginx,tomcat,jdk,apache},system/{centos,ubuntu,redhat}} -pv [root@node2 /app]# cd dockerfile/system/centos/ [r

  • 详解制作各种docker镜像

    做了一个星期的镜像,收货颇多,现在整理记录下来,当做工作笔记吧.把常用的几个镜像的Dockerfile分享下. 制作基础docker镜像 第一步:设置Docker镜像源 复制代码 代码如下: yum install -y yum-priorities && rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm && rpm --import /etc/pki/rp

  • Docker Dockerfile 定制镜像的方法

    使用 Dockerfile 定制镜像 镜像的定制实际上就是定制每一层所添加的配置.文件.如果我们可以把每一层修改.安装.构建.操作的命令都写入一个脚本,用这个脚本来构建.定制镜像,那么无法重复的问题.镜像构建透明性的问题.体积的问题就都会解决.这个脚本就是 Dockerfile. Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建. 此处以定制 nginx 镜像为例,使用 Dockerfile

  • docker之创建MariaDB镜像的方法

    一.基于commit命令方式创建 docker的安装 [root@test01 ~]# yum install docker [root@test01 ~]# systemctl enable docker [root@test01 ~]# systemctl start docker 下载本地镜像 [root@test01 ~]# docker pull centos:7.4.1708 [root@test01 ~]# docker images REPOSITORY TAG IMAGE ID

随机推荐