Jak mogę stworzyć własny obraz bazowy dla Dockera?
Zgodnie z dokumentacją Docker , aby zbudować własny obraz, należy zawsze podać obraz bazowy za pomocą instrukcji FROM
.
Oczywiście, w indeksie Dockera jest wiele obrazów do wyboru, ale co, jeśli chciałbym zbudować własny? Czy to możliwe?
Obraz base
jest zbudowany z Ubuntu, jeśli dobrze Rozumiem i chcę poeksperymentować z obrazem Debiana. Poza tym chcę naprawdę zrozumieć, jak działa Docker, a base
obraz wciąż jest czarna skrzynka dla mnie.
5 answers
Możesz spojrzeć na sposób tworzenia obrazów bazowych i przejść stamtąd.
Znajdziesz je tutaj: https://github.com/dotcloud/docker/tree/master/contrib . Jest mkimage-busybox.sh, mkimage-unittest.sh, mkimage-debian.sh
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-16 17:27:10
Cytowanie Salomon Hykes :
Możesz łatwo utworzyć nowy kontener z dowolnego tarballa za pomocą "Docker import". Na przykład:
debootstrap raring ./rootfs tar -C ./rootfs -c . | docker import - flimm/mybase
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:18:15
(kredyt dla fatherlinux) Uzyskaj informacje z http://developerblog.redhat.com/2014/05/15/practical-introduction-to-docker-containers / , co wyjaśnia lepiej
-
Utwórz pliki tar dla Twojego systemu plików, po prostu może to być
tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos6-base.tar /
-
Przenieś plik tar do innego systemu dokującego, jeśli nie jest zainstalowany lokalnie i
import
cat centos6-base.tar | docker import - centos6-base
-
Teraz możesz sprawdzić, uruchamiając go.
docker run -i -t centos6-base cat /etc/redhat-release
Skrypty z dotcloud połącz dwa pierwsze kroki, które sprawiają, że jestem zdezorientowany i wygląda na skomplikowany na początku.
Docker official guideline using debootstrap
również próbuje zrobić czysty system plików.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-02 02:07:01
Aby rozpocząć budowanie własnego obrazu od zera, możesz użyć obrazu scratch
.
Użycie scratch "image" sygnalizuje procesowi budowania, że następne polecenie w pliku Dockerfile ma być pierwszą warstwą systemu plików w obrazie.
FROM scratch
ADD hello /
CMD ["/hello"]
Http://docs.docker.com/engine/articles/baseimages/#creating-a-simple-base-image-using-scratch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-11 09:22:56
Jeśli chcesz zrobić własny obraz bazowy, najpierw rzucę okiem na
oficjalne zdjęcia , a konkretnie stackbrew
wewnątrz tego repo.
W Przeciwnym Razie w repo Dockera znajdują się świetne odniesienia do minimalnych obrazów systemu operacyjnego.
Na przykład tutaj jest skrypt do tworzenia minimalnego obrazu łuku i jest więcej tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-27 13:53:17