Docker Hub w darmowym planie daje jedno prywatne repozytorium i limity na pobieranie obrazów, a każdy kolejny obraz albo wyższy limit pull rate to już płatny plan Pro lub Team, liczony od użytkownika miesięcznie. Docker Registry na Saplo to Twój własny, prywatny magazyn zbudowanych obrazów Docker pod Twoją domeną, z prostym interfejsem w przeglądarce do przeglądania repozytoriów, tagów i warstw, bez limitu repozytoriów i bez limitu pobierań. Poniżej krok po kroku, jak postawić Docker Registry na Saplo.
Dlaczego własny rejestr zamiast Docker Hub
Docker Hub jest wygodny na start, ale ma dwie słabe strony, które własny rejestr usuwa:
- darmowy plan Docker Hub daje tylko jedno prywatne repozytorium, każdy kolejny prywatny obraz wymaga płatnego planu Pro (jednorazowo od około 5 USD miesięcznie) albo Team (od około 9 USD miesięcznie za użytkownika), jeśli w projekcie pracuje więcej osób,
- limity pull rate ograniczają, ile razy dziennie pipeline CI/CD albo serwer produkcyjny może ściągnąć obraz, co przy częstych deployach i wielu instancjach tej samej aplikacji potrafi realnie zablokować wdrożenie w najgorszym momencie,
- obrazy zbudowane w firmowym CI/CD trzymane w cudzej chmurze publicznej to dane poza Twoją kontrolą, nawet jeśli repozytorium jest oznaczone jako prywatne.
Docker Registry na Saplo to oficjalny obraz registry:2 (Docker Distribution) razem z przeglądarkowym UI, oba w jednym kontenerze Docker na Twoim Boxie. Repozytoriów i pobierań nie liczy nikt, a koszt całości to koszt samego Boxa, niezależnie od tego, ile obrazów i ile razy dziennie ściąga je Twój pipeline.
Wymagania
Żeby postawić Docker Registry na Saplo, potrzebujesz:
- Boxa z uruchomionym Dockerem (silnik włącza go automatycznie przy instalacji z katalogu, wymagany jest nesting w kontenerze, co Saplo ma domyślnie),
- minimum 512 MB RAM wolnego na Boxie i 10 GB miejsca na dysku pod obrazy, czyli najtańszy plan, który to udźwignie, to Box S za 119 zł rocznie,
- domeny albo subdomeny *.saploapp.pl w cenie każdego planu, pod którą stanie rejestr i UI,
- osobnej bazy danych NIE potrzebujesz, rejestr trzyma zbudowane obrazy w wolumenie danych aplikacji, a nie w bazie SQL.
Pełny opis aplikacji i jej miejsce w katalogu znajdziesz na stronie Docker Registry na Saplo.
Instalacja krok po kroku
- W panelu Saplo wejdź w Katalog aplikacji i wybierz Docker Registry.
- Wskaż Box z minimum 512 MB wolnego RAM i 10 GB wolnego dysku oraz domenę albo subdomenę, pod którą stanie rejestr.
- Zatwierdź instalację. Silnik generuje losowe hasło administratora, zapisuje je jako hasz bcrypt (jedyny format, jaki obsługuje rejestr Dockera w trybie autoryzacji htpasswd), stawia dwa kontenery,
registryz oficjalnego obrazuregistry:2iregistry-uiz obrazujoxit/docker-registry-ui, i czeka, aż UI faktycznie odpowie po HTTP, zanim uzna instalację za zakończoną. - UI działa jako reverse proxy do API rejestru pod tym samym portem i domeną, więc
docker login,docker pushidocker pulldziałają wprost pod adresem aplikacji, bez dodatkowych portów i bez konfiguracji CORS. - Dane logowania administratora (login, hasło) trafiają do pliku
DOCKER-REGISTRY-SETUP.txtw katalogu aplikacji.
Pierwsze użycie
- Odczytaj login i hasło z pliku
DOCKER-REGISTRY-SETUP.txtw katalogu aplikacji (login domyślnieadmin, hasło wygenerowane losowo przy instalacji). - Zaloguj się z lokalnego Dockera poleceniem
docker login twoja-domena.saploapp.pli podaj login z hasłem z pliku. - Otaguj obraz pod adresem rejestru, na przykład
docker tag moj-obraz:latest twoja-domena.saploapp.pl/moj-obraz:latest, i wypchnij go poleceniemdocker push. - Wejdź pod adres domeny w przeglądarce, zaloguj się tym samym loginem i hasłem i przeglądaj repozytoria, tagi i warstwy w UI joxit/docker-registry-ui.
- Na serwerze produkcyjnym albo w pipeline CI/CD ściągnij obraz poleceniem
docker pull twoja-domena.saploapp.pl/moj-obraz:latest, po zalogowaniu tym samym kontem.
Docker Registry na Saplo kontra Docker Hub
| Docker Hub Free | Docker Hub Pro/Team | Docker Registry na Saplo | |
|---|---|---|---|
| Limit prywatnych repozytoriów | jedno | bez limitu | bez limitu |
| Limit pull rate | tak, dla anonimowych i darmowych kont | wyższy, ale wciąż liczony | brak |
| Gdzie leżą obrazy | na serwerach Docker Inc | na serwerach Docker Inc | na Twoim Boxie |
| Koszt | 0 USD, ale z limitami | od około 5 USD miesięcznie za użytkownika | koszt samego Boxa (od 119 zł rocznie) |
Najczęstsze pytania
Czy trzeba zakładać konto w Docker Hub albo innym rejestrze publicznym?
Nie, Docker Registry na Saplo działa całkowicie samodzielnie, logowanie do docker login idzie na login i hasło wygenerowane przy instalacji, bez konta u zewnętrznego dostawcy.
Czy jest limit liczby obrazów albo pobierań? Nie, jedyne ograniczenie to miejsce na dysku Boxa, które wykupujesz w planie.
Czy da się zmienić hasło administratora?
Tak, nowy hasz bcrypt generujesz jednorazowym kontenerem httpd:2.4-alpine (docker run --rm httpd:2.4-alpine htpasswd -Bbn użytkownik haslo), podmieniasz plik htpasswd w katalogu aplikacji i restartujesz kontener registry.
Czy rejestr wymaga osobnej bazy danych? Nie, obrazy i ich metadane trzymane są w wolumenie danych kontenera registry, bez potrzeby osobnej bazy MySQL czy Postgresa.
Czy da się kasować stare obrazy i tagi?
Tak, usuwanie obrazów jest włączone (REGISTRY_STORAGE_DELETE_ENABLED) i dostępne wprost z UI w przeglądarce, bez wchodzenia po SSH.
Jeśli dziś płacisz za Docker Hub Pro albo Team tylko po to, żeby mieć więcej niż jedno prywatne repozytorium, napisz do nas, pomożemy postawić własny rejestr.