Skip to content

Instantly share code, notes, and snippets.

@iscaswang
Forked from silveraid/CentOS-Docker
Created September 3, 2022 04:53
Show Gist options
  • Save iscaswang/1de7d873a6dca7e90cf85878e170f991 to your computer and use it in GitHub Desktop.
Save iscaswang/1de7d873a6dca7e90cf85878e170f991 to your computer and use it in GitHub Desktop.

Revisions

  1. @silveraid silveraid created this gist Oct 27, 2017.
    36 changes: 36 additions & 0 deletions CentOS-Docker
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,36 @@
    # Create a folder for our new root structure
    $ export centos_root='/centos_image/rootfs'
    $ mkdir -p $centos_root
    # initialize rpm database
    $ rpm --root $centos_root --initdb
    # download and install the centos-release package, it contains our repository sources
    $ yum reinstall --downloadonly --downloaddir . centos-release
    $ rpm --root $centos_root -ivh centos-release*.rpm
    $ rpm --root $centos_root --import $centos_root/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    # install yum without docs and install only the english language files during the process
    $ yum -y --installroot=$centos_root --setopt=tsflags='nodocs' --setopt=override_install_langs=en_US.utf8 install yum
    # configure yum to avoid installing of docs and other language files than english generally
    $ sed -i "/distroverpkg=centos-release/a override_install_langs=en_US.utf8\ntsflags=nodocs" $centos_root/etc/yum.conf
    # chroot to the environment and install some additional tools
    $ cp /etc/resolv.conf $centos_root/etc
    $ chroot $centos_root /bin/bash <<EOF
    yum install -y procps-ng iputils
    yum clean all
    EOF
    $ rm -f $centos_root/etc/resolv.conf

    # install and enable docker
    $ yum install -y docker
    ...
    $ systemctl start docker
    # create docker image
    $ tar -C $centos_root -c . | docker import - centos
    sha256:28843acfa85226385d2db0196db72465729db38088ea98751d4a5c3d4c85ccd
    $ docker images
    REPOSITORY TAG IMAGE ID CREATED SIZE
    centos latest 28843acfa852 11 seconds ago 287.7 MB
    # run docker image
    $ docker run --rm centos cat /etc/redhat-release
    CentOS Linux release 7.2.1511 (Core)

    Source: https://www.sidorenko.io/post/2016/07/creating-container-base-image-of-centos/