Alpine + Docker = <3

Jeżeli korzystacie z Dockera myślę że, jedną z rzeczy która może was irytować to rozmiar obrazów oraz czas ich pobierania. Spora część obrazów na Docker hubie jest oparta na Debianie oraz na ubuntu, te dystrybucje niestety nie są zbyt lekkimi i zjadają niepotrzebnie nasz dysk. Rozwiązaniem problemu jest Linux Alpine, jest to bardzo lekka wersja Linuxa.

Najnowsza wersja tego systemu przystosowana pod użycie w Dockerze waży tylko 2MB co jak na system operacyjny jest bardzo niewielkim rozmiarem. Oczywiście rozmiar ten jest wynikiem pewnego kompromisu. Gdy zalogujemy się do kontenera posiadamy tylko naprawdę podstawowe narzędzia, nie mamy między innymi zainstalowanego nano czy też curla. Na szczęście Alpine oferuje menadżer pakietów o nazwie apk którym możemy bez problemu doinstalować potrzebne nam programy.

Jeżeli zauważysz na Docker hubie że, obraz którego potrzebujesz wspiera wersję Alpine warto wybrać ją zamiast standardowej wersji, tak jak wspomniałem wyżej dzięki temu oszczędzamy miejsca na dysku. Przykładem jest nginx:

Wersja standardowa waży 44MB, wersja Alpine tylko 7MB. Jak widzicie jest to znaczna różnica. Jeżeli nasz nginx ma służyć tylko jako proxy do innego kontenera jest to idealnym rozwiązaniem.

Ten blog stoi na Dockerze. Używam dość taniego VPSa który ma niewielką przestrzeń na pliki i używa starą wersję Dockera . Na początku próbowałem zainstalować WordPressa na standardowej wersji. Niestety skończyła mi się pamięć na dysku i musiałem jakoś kombinować ;). Z pomocą przyszedł mi właśnie Linux Alpine 😀

Jak widzicie WordPress oraz Nginx używają wersji Alpine, Mysql nie posiada na ten czas wersji Alpine.

Podsumowując, dzięki Linuxowi Alpine obrazy na Dockerze są znacznie mniejsze, niesie to za sobą wiele zalet. W końcu lwia część obrazu jest zajmowana przez pliki usługi która stoi na tym obrazie a nie przez sam system operacyjny 😀 !