Jestem zdezorientowany co do różnicy między rejestrami dockerów a repozytoriami. Wygląda na to, że dokumentacja Dockera używa tych dwóch słów zamiennie. Ponadto repozytoria są czasami nazywane obrazami, na przykład z ich dokumentów:
Aby wypchnąć repozytorium do jego rejestru, musisz nazwać obraz lub przypisać kontener do nazwanego obrazu, jak widzieliśmy tutaj.
Teraz możesz wypchnąć to repozytorium do rejestru określonego przez jego nazwę lub tag.
Jak przesłać repozytorium do rejestru? Nie wypychasz obrazu do repozytorium?
git
, to - Rejestr Docker (domyślniehub.docker.com
) => GitHub (github.com
); - Docker Repository => Git Repository; - Docker Tag => Git Ref (Branch / Tag)Odpowiedzi:
Rejestr platformy Docker to usługa przechowująca obrazy platformy Docker.
Rejestr platformy Docker może być obsługiwany przez firmę zewnętrzną jako rejestr publiczny lub prywatny, na przykład jeden z następujących rejestrów:
lub możesz samodzielnie hostować rejestr Docker
( więcej szczegółów znajdziesz na https://docs.docker.com/ee/dtr/ ).
Repozytorium Dockera to zbiór różnych obrazów dockera o tej samej nazwie, które mają różne tagi. Tag to alfanumeryczny identyfikator obrazu w repozytorium.
Na przykład zobacz https://hub.docker.com/r/library/python/tags/ . Istnieje wiele różnych tagów dla oficjalnego obrazu Pythona, wszystkie te tagi są członkami oficjalnego repozytorium Pythona w Docker Hub. Docker Hub to rejestr Docker obsługiwany przez platformę Docker.
Aby dowiedzieć się więcej, przeczytaj:
źródło
Z książki Using Docker, Developing and deploying Software with Containers
Rejestry, repozytoria, obrazy i tagi
Istnieje hierarchiczny system przechowywania obrazów. Używana jest następująca terminologia:
Rejestr
Usługa odpowiedzialna za hosting i dystrybucję obrazów. Rejestr domyślny to Docker Hub.
Magazyn
Zbiór powiązanych obrazów (zwykle udostępniających różne wersje tej samej aplikacji lub usługi).
Etykietka
Identyfikator alfanumeryczny dołączany do obrazów w repozytorium (np. 14.04 lub stabilny).
Zatem polecenie
docker pull amouat/revealjs:latest
pobierze obraz oznaczony jako najnowszy wamouat/revealjs
repozytorium z rejestru Docker Hub.źródło
ubuntu:latest
iubuntu:16.04
mają to samoImage ID
, co oznacza, że są po prostu wieloma tagami dla tego samego obrazu.docker pull
, która brzmi częściowo: „Aby pobrać określony obraz lub zestaw obrazów (tj. Repozytorium), użyjdocker pull
. Jeśli nie podano tagu, Docker Engine używa:latest
tagu jako domyślnego. " Jak zatem można „pobrać… zestaw obrazów (tj. Repozytorium)”? 🤔Uzupełnienie informacji:
docker push
.namespace/repo-name:tag
myregistryhost:5000/namespace/repo-name:tag
źródło
image-name
. Format powinien byćuser-name/repo-name:tag
zgodny z dokumentacją Dockera . (Szkoda, że Docker nie używał lepszej terminologii, jest to dość zagmatwane i nie są nawet spójne przez cały czas).docker info |grep Registry
Repozytorium docker to urocze połączenie
registry
iimage
.jest taki sam jak
źródło
Docker Registry to usługa, którą możesz hostować samodzielnie (zaufana i prywatna) lub pozwolić, aby docker hub był hostem dla tej usługi. Zwykle, jeśli twoje oprogramowanie jest komercyjne, będziesz je hostować jako rejestr „prywatny i zaufany”. W przypadku programistów Java jest to nieco analogiczne do konfiguracji Maven Artifactory.
Docker Repository to zestaw obrazów „Tagged”. Na przykład możesz oznaczyć 5
ubuntu:latest
obrazów:a) Edytor Nano (image1_tag: v1)
b) Specyficzne oprogramowanie 1 (image1_tag: v2)
c) Sudo (image1_tag: v3)
d) demon apache http (image1_tag: v4)
e) kocur (image1_tag: v5)
Możesz użyć
docker push
polecenia, aby wypchnąć każdy z powyższych obrazów do swojego repozytorium. Dopóki nazwy repozytoriów pasują do siebie, zostaną pomyślnie przekazane i pojawią się pod wybranym repozytorium oraz prawidłowo oznaczone.Teraz twoje pytanie brzmi: „Więc gdzie jest hostowane to repozytorium / kto zarządza usługą”? W tym miejscu pojawia się Docker Registry. Domyślnie otrzymasz rejestr docker hub (Open Source), którego możesz użyć do przechowywania prywatnego / publicznego repozytorium. Więc bez żadnych modyfikacji Twoje obrazy zostaną przeniesione do Twojego prywatnego repozytorium w Docker Hub. Przykładowe dane wyjściowe podczas przekazywania tagów graficznych są następujące:
A jeśli od razu
docker images --digests -a
wpiszesz, możesz potwierdzić, że przesłane znaczniki obrazu pokazują teraz nowy podpis w prywatnym repozytorium zarządzanym przez rejestr docker hub register.źródło
Docker Hub i inne usługi hostingu repozytoriów stron trzecich nazywane są „rejestrami”. Rejestr przechowuje zbiór repozytoriów.
Ponieważ rejestr może mieć wiele repozytoriów, a repozytorium może mieć wiele różnych wersji tego samego obrazu, które są indywidualnie wersjonowane za pomocą tagów.
źródło