Mam obraz dokera oznaczony jako me/my-image
i mam prywatne repozytorium o nazwie dokerhub me-private
.
Kiedy naciskam me/my-image
, zawsze trafiam do publicznego repozytorium.
Jaka jest dokładna składnia, aby konkretnie przesłać mój obraz do mojego prywatnego repozytorium?
docker
docker-registry
Eugene Goldberg
źródło
źródło
Odpowiedzi:
Najpierw musisz poprawnie oznaczyć obraz swoim
registryhost
:Następnie dokuj wypychaj, używając tego samego znacznika.
Przykład:
źródło
docker tag 518a41981a6a me-private.com/myPrivateImage && docker push me-private.com/myPrivateImage
docker login
pierwszy, a następnie oznacz swoje zdjęciedocker tag 518a41981a6a me-private/myPrivateImage
i naciśnij:docker push me-private/myPrivateImage
Tylko trzy proste kroki:
docker login --username username
--password
ponieważ nie jest ono przechowywane w historii poleceńdocker tag my-image username/my-repo
docker push username/my-repo
źródło
--password
flagę, jeśli nie chcesz, aby Twoje hasło pojawiało się w historii. podpowie ci.Najpierw przejdź do swojego konta Docker Hub i zrób repozytorium. Oto zrzut ekranu mojego konta Docker Hub:
Ze zdjęcia widać, że moje repo to „chuangg”
Teraz przejdź do repozytorium i ustaw je jako prywatne, klikając nazwę obrazu. Więc dla mnie kliknąłem „chuangg / gene_commited_image”, a potem poszedłem do Ustawienia -> Ustaw jako prywatny. Następnie wykonałem instrukcje na ekranie
JAK ZAŁOŻYĆ OBRAZ DOCKERA NA PIASTĘ DOCKER
Metoda nr 1 = Przepychanie obrazu przez linię poleceń (cli)
1)
docker commit <container ID> <repo name>/<Name you want to give the image>
Tak, myślę, że musi to być identyfikator kontenera. Prawdopodobnie nie może to być identyfikator obrazu.
Na przykład =
docker commit 99e078826312 chuangg/gene_commited_image
2)
docker run -it chaung/gene_commited_image
3)
docker login --username=<user username> --password=<user password>
Na przykład =
docker login --username=chuangg [email protected]
Tak, musisz się najpierw zalogować. Wyloguj się za pomocą „wylogowania dokera”
4)
docker push chuangg/gene_commited_image
Metoda nr 2 = Przesuwanie obrazu za pomocą pom.xml i wiersza poleceń.
Uwaga: użyłem profilu Maven o nazwie „build-docker”. Jeśli nie chcesz używać profilu, po prostu usuń
<profiles>, <profile>, and <id>build-docker</id>
elementy.Wewnątrz nadrzędnego pom.xml:
Docker Terminal Command, aby wdrożyć obraz Docker (z katalogu, w którym znajduje się plik pom.xml) =
mvn clean deploy -Pbuild-docker docker:push
Uwaga: różnica między metodą nr 2 i nr 3 polega na tym, że metoda nr 3 ma dodatkową zaletę
<execution>
dla wdrożenia.Metoda nr 3 = Użycie Maven do automatycznego wdrożenia w Docker Hub
Dodaj to do swojego pom.xml twojego rodzica:
Przejdź do katalogu C: \ Users \ Gene.docker \ i dodaj to do pliku config.json:
Teraz w Docker Quickstart Terminal wpisz =
mvn clean install -Pbuild-docker
Jeśli nie używasz profili Maven, po prostu wpisz
mvn clean install
Oto zrzut ekranu komunikatu o sukcesie:
Oto mój pełny pom.xml i zrzut ekranu mojej struktury katalogów:
Oto mój katalog Eclipse:
Oto mój plik Docker:
Typowy błąd nr 1:
Rozwiązanie dla błędu nr 1 = Nie synchronizuj
<execution>
fazy wdrażania z maven, ponieważ następnie maven próbuje wdrożyć obraz 2x i umieszcza znacznik czasu na słoiku. Właśnie dlatego użyłem<phase>install</phase>
.źródło
Jeśli rejestr dokera jest prywatny i hostowany samodzielnie , wykonaj następujące czynności:
Przykład:
źródło
Istnieją dwie opcje:
Przejdź do koncentratora, najpierw utwórz repozytorium i oznacz je jako prywatne. Gdy przejdziesz do tego repozytorium, będzie ono prywatne. To jest najczęstsze podejście.
zaloguj się do konta w centrum dokowanym i przejdź do ustawień globalnych . Istnieje ustawienie, które pozwala ustawić domyślną widoczność repozytoriów, które wypychasz. Domyślnie jest ustawiony na publiczny, ale jeśli zmienisz go na prywatny, wszystkie repozytoria, które wypychasz, będą domyślnie oznaczone jako prywatne. Ważne jest, aby pamiętać, że będziesz musiał mieć wystarczająco dużo prywatnych repozytoriów na swoim koncie, w przeciwnym razie repo zostanie zablokowane, dopóki nie uaktualnisz swojego planu.
źródło
docker push
polecenia. Ale jeśli dobrze zrozumiałem pytanie, żadna z tych odpowiedzi nie jest poprawna, a powyższa zamieszczona przez Kena Cochrane'a jest jedyną, która powinna zostać zaakceptowana.Utwórz repozytorium w dockerhub:
$docker tag IMAGE_ID UsernameOnDockerhub/repoNameOnDockerhub:latest
$docker push UsernameOnDockerhub/repoNameOnDockerhub:latest
Uwaga : tutaj „repoNameOnDockerhub”: repozytorium o nazwie, o której wspominasz, musi być obecne w dockerhub
„najnowsze”: to tylko tag
źródło
Patrz: dock.docker.com
Ten temat zawiera podstawowe informacje na temat wdrażania i konfigurowania rejestru
Uruchom rejestr lokalny
Przed wdrożeniem rejestru musisz zainstalować Docker na hoście.
Aby uruchomić kontener rejestru, użyj polecenia podobnego do następującego:
start_registry.sh
Skopiuj obraz z Docker Hub do rejestru
Wyciągnij
ubuntu:16.04
obraz z Docker Hub.Oznacz obraz jako
localhost:5000/my-ubuntu
. To tworzy dodatkowy znacznik dla istniejącego obrazu. Gdy pierwszą częścią tagu jest nazwa hosta i port, Docker interpretuje to jako lokalizację rejestru podczas wypychania.Wepchnij obraz do rejestru lokalnego działającego w
localhost:5000
:Usuń lokalnie buforowane obrazy. To nie usuwa
localhost:5000/my-ubuntu
obrazu z rejestru.Wyciągnij
localhost:5000/my-ubuntu
obraz z lokalnego rejestru.Według docs.docker.com jest to bardzo niepewne i nie jest zalecane .
Edytuj
daemon.json
plik, którego domyślną lokalizacją jest/etc/docker/daemon.json
Linux lubC:\ProgramData\docker\config\daemon.json
Windows Server. Jeśli używaszDocker for Mac
lubDocker for Windows
kliknijDocker icon -> Preferences -> Daemon
, dodaj winsecure registry
.Jeśli
daemon.json
plik nie istnieje, utwórz go. Zakładając, że w pliku nie ma innych ustawień, powinien on mieć następującą zawartość:Po włączeniu niezabezpieczonych rejestrów Docker wykonuje następujące kroki:
Zrestartuj Docker, aby zmiany odniosły skutek.
źródło
Najpierw zaloguj się do swojego prywatnego repozytorium.
na przykład:
A następnie oznacz swoje zdjęcie do prywatnego repozytorium
na przykład:
Wreszcie wypchnij swoje taged obrazy do prywatnego repozytorium
na przykład:
Odniesienie
źródło
Proste rozwiązanie robocze:
Przejdź tutaj
https://hub.docker.com/
, aby utworzyć prywatną repozytorium z nazwą na przykładjohnsmith/private-repository
jest toNAME/REPOSITORY
będziesz używać dla obrazu podczas budowania wizerunku.Pierwszy,
docker login
Po drugie, używam „
docker build -t johnsmith/private-repository:01 .
” (gdzie 01 to moja wersja) do tworzenia obrazu i używam „docker images
” do potwierdzenia obrazu utworzonego, na przykład w tym żółtym polu poniżej: (przepraszam, nie mogę wkleić formatu tabeli, ale tylko ciąg tekstowy )docker push johnsmith/private-repository:01
(Twoje prywatne repo będzie tutaj przykład https://hub.docker.com/r/johnsmith/private-repository/ )Gotowy!
źródło