基于yum源创建自己的docker系统镜像

docker镜像的原理,可以搜索网络文章,尤其docker hub中的系统镜像,基础的系统镜像并不清楚系统中都放了哪些单元和组件,若是想进一步裁剪,则不可,作为产品级的系统基础镜像总是希望可控和完全清楚内容,并可根据情况进行裁剪,越小越好!如下于docker源码分析而自动创建的系统tar包,cat *.tar  |  docker import - 即可:基于centos7.x系统的容器镜像:

# vim yum.conf.temp  文件
 
[main]
tsflags=nodocs
installroot=WORKSPACE_DIR/root
reposdir=WORKSPACE_DIR/yum.repos.d
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
 
 
#  This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
#  It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
 
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
# vim make_centos7.sh
#!/bin/bash
cd $(dirname $0)
 
root_dir=$(cd ..;pwd)/rootfs
 
cp -f yum.conf.temp yum.conf
sed -i "s#WORKSPACE_DIR/root#$root_dir#g" yum.conf
sed -i "s#WORKSPACE_DIR#$(pwd)#g" yum.conf
 
# 基础工具包
yum -c yum.conf --releasever=7 install -y systemd
yum -c yum.conf --releasever=7 install -y rootfiles
yum -c yum.conf --releasever=7 install -y hostname
yum -c yum.conf --releasever=7 install -y iproute
yum -c yum.conf --releasever=7 install -y iputils
yum -c yum.conf --releasever=7 install -y file
yum -c yum.conf --releasever=7 install -y lsof
yum -c yum.conf --releasever=7 install -y which
yum -c yum.conf --releasever=7 install -y tar
yum -c yum.conf --releasever=7 install -y bzip2
yum -c yum.conf --releasever=7 install -y vim
yum -c yum.conf --releasever=7 install -y less
yum -c yum.conf --releasever=7 install -y lrzsz
yum -c yum.conf --releasever=7 install -y erlang
# 开发编译包
yum -c yum.conf --releasever=7 install -y yum
yum -c yum.conf --releasever=7 install -y gcc
yum -c yum.conf --releasever=7 install -y mariadb-devel
yum -c yum.conf --releasever=7 install -y subversion
yum -c yum.conf --releasever=7 install -y rsync
# 清理缓存临时文件
yum -c yum.conf --releasever=7 clean all
 
cd $root_dir
tar --numeric-owner -cf ../centos.tar .
加载进docker镜像,后续的产品即可基于此镜像进行书写DockerFile文件即可,如上涵盖的系统的基础工具已经安装,可以根据需要进行调整,如此可以创造更加小的基础系统镜像,通过此方式之后,应该可以更加理解镜像,镜像分层,镜像导出tar包和镜像docker load或docker import的内容
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百鸣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值