Create a minimal CentOS Docker image from scratch

1. Create a CentOS basic framework from scratch

First install CentOS7, install Docker on it, and execute:

# /usr/local/bin/supermin --prepare yum -o supermin.d
# /usr/local/bin/supermin --build --format chroot supermin.d -o appliance.d

# cd appliance.d
# mv usr/share/locale/en usr/share/locale/en_US tmp
# rm -rf usr/share/locale/*
# mv tmp/en tmp/en_US usr/share/locale/
# mv usr/share/i18n/locales/en_US tmp
# rm -rf usr/share/i18n/locales/*
# mv tmp/en_US usr/share/i18n/locales/
# echo 7 > etc/yum/vars/releasever
# cd ..

# tar --numeric-owner -cpf centos7-zero.tar -C appliance.d .
# cat centos7-zero.tar | docker import - local/centos7-zero

 

 

2. Install the necessary components and complete a minimal CentOS7 image

Execute on the host:

# docker run -i -t local/centos7-zero /bin/bash

Execute in container:

# yum update -y
# yum install -y audit-libs basesystem bash binutils bzip2-libs ca-certificates centos-release chkconfig coreutils cpio cracklib cracklib-dicts curl cyrus-sasl-lib dbus-libs device-mapper device-mapper-libs diffutils elfutils-libelf expat fakesystemd file file-libs filesystem findutils gawk gdbm glib2 glibc glibc-common gmp gnupg2 gpgme grep groff-base gzip hardlink info iproute iptables iptables-services iputils keyutils-libs kmod-libs kpartx krb5-libs less libacl libassuan libattr libblkid libcap libcap-ng libcom_err libcroco libcurl libdb libdb-utils libffi libgcc libgcrypt libgomp libgpg-error libidn libmnl libmount libnetfilter_conntrack libnfnetlink libpwquality libselinux libsemanage libsepol libssh2 libstdc++ libtasn1 libunistring libuser libutempter libuuid libverto libxml2 lua ncurses ncurses-base ncurses-libs nspr nss nss-softoknnss-softokn-freebl nss-sysinit nss-tools nss-util openldap openssl-libs p11-kit p11-kit-trust pam pcre pinentry pkgconfig popt procps-ng pth pygpgme pyliblzma python python-iniparse python-libs python-pycurl python-urlgrabber pyxattr readline rootfiles rpm rpm-build-libs rpm-libs rpm-python sed setup shadow-utils shared-mime-info sqlite systemd-libs tzdata ustr util-linux vim-minimal which xz xz-libs yum yum-metadata-parser yum-plugin-fastestmirror zlibyum-metadata-parser yum-plugin-fastestmirror zlibyum-metadata-parser yum-plugin-fastestmirror zlib
# yum update -y && yum clean all
# exit

 

Execute on the host:

# docker export <container_id> > centos7-minimal.tar

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326489550&siteId=291194637