Domyślnie, jeśli wydaję polecenie:
sudo docker pull ruby:2.2.1
domyślnie pobierze z oficjalnej strony docker.io.
Pulling repository docker.io/library/ruby
Jak zmienić to na mój prywatny rejestr. To znaczy, jeśli wydam
sudo docker pull ruby:2.2.1
pobierze z mojego prywatnego rejestru, wynik będzie wyglądał mniej więcej tak:
Pulling repository my_private.registry:port/library/ruby
docker
docker-registry
mainframer
źródło
źródło
Odpowiedzi:
AKTUALIZACJA: po Twoim komentarzu nie można obecnie zmienić domyślnego rejestru. Więcej informacji można znaleźć w tym problemie .
Powinieneś być w stanie to zrobić, zastępując hosta i port własnymi:
Jeśli serwer jest zdalny / ma autoryzację, może być konieczne zalogowanie się do serwera za pomocą:
Następnie bieganie:
źródło
docker pull <YOUR-DOMAIN>:8080/test-image
było ok. Ale to, czego chcędocker pull test-image
, to bez określania DOMENY i portu oraz bez logowania.@scopes
npm, aby wprowadzić nowe przestrzenie nazw bez konfliktu z istniejącymi. Umieszczenie nazwy hosta rejestru w nazwie obrazu utrudnia buforowanie rejestru / proxy / blokowanie w firmie lub projekcie. To dobrze to opisuje: informit.com/articles/article.aspx?p=2464012&seqNum=3Okazuje się, że jest to rzeczywiście możliwe, ale nie przy użyciu oryginalnej wersji Docker CE lub EE.
Możesz albo użyć rozwidlenia dockera Red Hata z flagą `` --add-register '' lub możesz samodzielnie zbudować docker ze źródła z modyfikacją rejestru / config.go, aby używała własnej zakodowanej na stałe domyślnej przestrzeni nazw / indeksu rejestru.
źródło
--add-registry
przestała działać.--block-registry index.docker.io
opcji pozbycia się domyślnego rejestru.--add-registry
Prośba przyciąganie było nie połączyły . Ta funkcja została ostatecznie odrzucona ( # 11816 ).jeśli używasz dystrybucji Fedory, możesz zmienić plik
Dodawanie domeny docker.io
źródło
--add-registry
. Funkcja nie zostanie przyjęta przez platformę Docker w żądaniu ściągnięcia nie została scalona . (również funkcja została ostatecznie odrzucona ( # 11816 )Wygląda na to, że nie będzie obsługiwany ze względu na fragmentację, jaką spowodowałaby w społeczności (tj. Dwóch użytkowników otrzymałoby różne obrazy
ubuntu:latest
). Musisz po prostu dodać hosta przed nazwą obrazu. Zobacz ten numer na githubie, aby dołączyć do dyskusji.(Uwaga, nie jest to uparty komentarz, tylko bardzo krótkie podsumowanie dyskusji, które można śledzić we wspomnianym numerze github).
źródło
Próbowałem dodać następujące opcje w /etc/docker/daemon.json. (Użyłem CentOS7)
po tym zrestartowano demona Dockera. I działa bez docker.io. Mam nadzieję, że ten ktoś będzie pomocny.
źródło
--add-registry
Prośba przyciąganie było nie połączyły .Oficjalne stanowisko Dockera zostało wyjaśnione w numerze 11815 :
Red Hat miał określoną implementację, która na to pozwalała (patrz anwser, ale została odrzucona przez projekt Docker upstream). Opierał się na
--add-registry
argumencie, który został ustawiony/etc/containers/registries.conf
na RHEL / CentOS 7.źródło
Wcześniej można to osiągnąć stosując
DOCKER_OPTS
w/etc/default/docker
pliku konfiguracyjnym, który pracował na Ubuntu 14:04 i miał pewne problemy na Ubuntu 15:04. Nie jestem pewien, czy zostało to naprawione.Poniższa linia musi trafić do pliku
/etc/default/docker
na hoście, na którym działa demon Dockera. Zmiana wskazuje na prywatny rejestr jest zainstalowany w sieci lokalnej. Uwaga: konieczne będzie ponowne uruchomienie usługi docker po wprowadzeniu tej zmiany.źródło
Dodam do oryginalnej odpowiedzi udzielonej przez Guya, która jest nadal aktualna dzisiaj (wkrótce 2020).
Zastępowanie domyślnego rejestru docker, tak jak w przypadku, nie
maven
jest w rzeczywistości dobrą praktyką.W przypadku korzystania
maven
z niego artefakty są pobierane z repozytorium Maven Central za pośrednictwem lokalnego systemu zarządzania repozytorium, który będzie pełnił rolę serwera proxy. Te artefakty są zwykłymi, surowymi bibliotekami (słoikami) i jest mało prawdopodobne, abyś wypychał pliki jar o tej samej nazwie.Z drugiej strony, obrazy Dockera są w pełni operacyjne, uruchamialne, środowiska i całkowicie sensowne jest pobranie obrazu z Docker Hub, zmodyfikowanie go i wypchnięcie tego obrazu do lokalnego systemu zarządzania rejestrami o tej samej nazwie, ponieważ jest to dokładnie jak mówi jego nazwa, tylko w kontekście przedsiębiorstwa. W tym przypadku jedyną różnicą między tymi dwoma obrazami byłaby właśnie jego ścieżka !!
Stąd potrzeba ustalenia zasady: prefiks obrazu wskazuje jego pochodzenie; Domyślnie, jeśli obraz nie ma prefiksu, jest pobierany z Docker Hub.
źródło
Nie próbowałem, ale może przejęcie procesu rozpoznawania nazw DNS przez dodanie linii
/etc/hosts
dlahub.docker.com
lub coś podobnego (docker.io
?) Może zadziałać?źródło