基于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的内容

猜你喜欢

转载自blog.csdn.net/huapeng_guo/article/details/106106393
今日推荐