Doker, uruchom obraz od podstaw

5

Wszystkie poradniki dla początkujących Docker oparte na nich docker obrazy na cudzym. Jednak nawet base obraz ma tam 180 MB pamięci wirtualnej. Więc,

Zastanawiam się, czy możliwe jest rozpoczęcie mojej docker obraz całkowicie od podstaw bez żadnych obrazów macierzystych? (Jeśli tak, zamierzam utworzyć własny obraz bazowy za pomocą net-install).

Kontrola PS tutaj po więcej informacji Docker

Dzięki

xpt
źródło

Odpowiedzi:

4

Znajdź to,

Jak zbudować skrzynki bazowe dla Dockera

Podsumuj kroki, które zawsze robiłem,

Najpierw upewnij się, że debootstrap jest zainstalowany:

 sudo apt-get install debootstrap

Następnie pobierz najnowszy mkimage-debootstrap.sh:

sudo sh -xc 'curl https://raw.githubusercontent.com/dotcloud/docker/master/contrib/mkimage-debootstrap.sh > /usr/sbin/mkimage-debootstrap.sh' sudo chmod 755 /usr/sbin/mkimage-debootstrap.sh

Krok kompilacji jest bardzo prosty:

mkimage-debootstrap.sh sfxpt/debian sid

dla Debiana i

mkimage-debootstrap.sh sfxpt/ubuntu saucy

do budowania obrazu dokera Ubuntu.

Sprawdź powyższy adres URL pod kątem wszystkich brakujących danych. I również,

Jak mogę stworzyć własny obraz podstawowy dla Dockera

xpt
źródło
1

Docker Hub byłby dobrym miejscem do oglądania. Gentoo jest typową preferencją, podobnie jak GitHub, jednak rejestr w Docker Hub często ma łącza do pliku / s dockerfile używanych do tworzenia kontenera DOCker.

Równie dobrze można zagnieździć między sobą kontenery dokujące. Możesz także użyć Docker Compose, pociągnij obraz referencyjny push do swojej nazwy / mycustom-container-squash

Dockerfile 
FROM myname/my-custom-container 
ADD Build-all-my-crap.sh
RUN Build-all-my-crap.sh

Podobnie jak w przypadku VirtualBox, możesz używać rozpakowanych plików binarnych BusyBox, tj. De-crufting plików Debiana dla czystego tar.gz np. bin & gt; tar.gz itp. i używając bb-tar.gz oraz od podstaw do rozpakowywania archiwów tar dla minimalnej bazy.

W moim przypadku majstrowałem przy Gentoo na Pentoo, jednak iso & gt; aby dostać się do plików squasha, chociaż mogę dodać nakładkę, serwer dokera-hub zabije kompilację, jeśli zajmie to zbyt dużo czasu. Doszedłem do wniosku, że nadpisując instalację Gentoo za pomocą Pentoo (dostosowanego Gentoo) lub spróbuj dodać nakładkę rsync/crsync binpackage następnie po prostu zrób listę pkg, usuń koszyki, ale znów to się skończy.

Baza dokerów Jenkler Pakiet Gentoo na GitHub

Korzystałem z oficjalnego repozytorium Gentoo, jednak ich narzędzie powłoki zwykle zawodzi w autobuildach dockerhub dla x86-hardened. (bummer)

Metoda Jenklera pozwala na minimalny, ale ulepszony obraz podstawowy. Mogę tymczasowo przesunąć kilka debian & gt; tar do walki i lub po prostu je wbudować. GitHub pozwala na trochę LFS, więc mogłem po prostu przerwać mój katalog> tarballe, jak w powyższym przykładzie. Gdy próbowałem odciąć plik iso i squashfile, i nie działa tak dobrze, jakbym chciał.

z bazy necrose99 / my-cx-gentoo, użyj kilku narzędzi, aby rozpakować squashfs. np. w przypadku niektórych badań bezpieczeństwa, możliwość dokowania klastra lub skonfigurowania Pentoo w Dockerze jako chroot, takiego jak ... (może uruchomić x11 itp.) do wykonywania kompilacji, które mogą nie robić tak zdrowych rzeczy w mojej instalacji REAL (pakiety ALPHA Nie jestem najlepszym pisarzem Ebuild i nowszymi narzędziami bezpieczeństwa.

jednak mój nowy kontener dzwoni do mojej bazy
emerge my new stuff
następne nowe wywołanie kontenera w starym / starym / innym miejscu z kart kompilacji. na Docker Hub.
Nie drażnij się i niech szalą moderatorzy ...

W każdym razie możesz układać obrazy Dockera, takie jak warstwy ciasta, aby tort weselny był dobrą analogią i / lub kopnij aplikację do kontenera i zbuduj ją z kontenera bazowego. my-debian-ngix-www-hugo-docker z debian / public ..., itp. może, jeśli Debian jest twoją podstawą wyboru.

Necrose99
źródło
1
w każdym razie możesz załadować swój os Linux, github.com/Jenkler/docker/tree/master/gentoo-base , klonuj lub pobieraj jako zip, zainstaluj swój linux i po prostu włam każdy z głównych katalogów do archiwum tar, przydatne, jeśli nie jest oficjalną bazą dla twojej dystrybucji. jednak jeśli twoja dystrybucja jest wariantem Debian / Ubuntu / redhat / centos / etc, łatwiejszą od FEM / THEM, uruchom komendę repo, aby dodać pakiety rep / deb / rpm, a następnie ADD. IE DEBIAN dodaj kahli Linux repo, dodaj pkgs.
Necrose99
1
FROM scratch MAINTAINER Mikael Jenkler & lt; [email protected]> ADD gentoo1.tar.xz / ADD gentoo2.tar.xz / ADD gentoo3.tar.xz / ADD gentoo4.tar.xz / ADD gentoo5.tar.xz / CMD ["/ bin / bash"] tak czy inaczej minimalna instalacja gentoo. ARCH? lub itp., to samo może być zastosowane.
Necrose99
1
ADD my-provision.sh
Necrose99
1
ADD my-provision.sh; RUN provision.sh skrypt bashowy, aby rozpakować fragmenty plików tar, git jakiś pakiet, polecenie pkg-manager, np. Apt-get / equo / emerge / yum / packman niektóre pakiety / s, możesz następnie wywołać kontener bazowy na inny obraz. virtualbox livedvd, rozpakuj dystrybucję do CHROOT, lub debian net install, zrestartuj virtualbox dla gui, lub uruchom kompilację dokera, jednak przez plik docker, obraz może być aktualizowany przez autobuildy koncentratora dokera.
Necrose99
2
github.com/Jenkler/docker/tree/master/gentoo-base , github.com/Jenkler/docker/tree/master/gentoo-base/build wystarczy klonować przycinanie do potrzebnej dystrybucji. .
Necrose99