- Zuerst erstellen man einen temporären Ordner für die CHROOT-Umgebung:
12export SCRATCHDIR=/tmp/docker-baseimagemkdir -p ${SCRATCHDIR}
- Danach baut man eine RPM-Datenbank für die spätere Paketinstallation in der CHROOT-Umgebung:
12mkdir -p ${SCRATCHDIR}/var/lib/rpmrpm --root ${SCRATCHDIR} --initdb
- Nun teilt man dem lokalen RPM mit, welches OS installiert werden soll. Dies geschieht über das centos-release Paket, welches die nötigen Metainformationen für z. B. Repositories enthält:
1rpm --root ${SCRATCHDIR} -ivh ftp://mirror.de.leaseweb.net/centos/7.2.1511/os/x86_64/Packages/centos-release-7-2.1511.el7.centos.2.10.x86_64.rpm
- Es fehlen noch die Pakete für die CHROOT-Umgebung. YUM und RPM ziehen alle nötigen Abhängigkeiten für die CHROOT-Umgebung:
1yum -y --installroot=${SCRATCHDIR} install yum rpm
- Überprüfen sollte man seine Arbeit auch noch:
1234chroot ${SCRATCHDIR}bash 4.2# uname -abash 4.2# exit
- Nun importieren wir das Image noch in unsere private Docker Registry:
123456789# wenn Docker auf der gleichen Maschine läufttar -C ${SCRATCHDIR} -c . centos7-base.tar | docker import - corp/centos7base:7.2# wenn Docker auf einer anderen Maschine läuftMaschine 1# tar -C ${SCRATCHDIR} -cf centos7-base.tar .Maschine 2# docker import centos7-base.tar corp/centos7base:7.2# unabhängigdocker push corp/centos7base:7.2
CentOS Base Image für Docker erstellen
Im öffentlichen Docker Hub Image Repository finden sich einige fertige CentOS-Basisimages, darunter auch die vom CentOS-Projekt gepflegten.
Wer diesen nun misstraut oder gerne sein eigenes Basisimage erzeugen möchte, kann zu mehreren Optionen greifen. Folgt man dem Hinweis für CentOS auf docker.com, gelangt man zu einem Skript, der die Arbeit für einen erledigt. Manchmal ist es sinnvoll auch zu verstehen, was dort getan wird und somit macht man es auch gerne per Hand. Das Erstellen eines Docker-Basisimages ist vergleichbar mit dem Erstellen einer CHROOT-Umgebung. So fangen wir auch an (hier am Beispiel einer CentOS 7-Installation):