2015-10-11 13 views
5

starałem się Döcker i zrobiłem, co następuje:Czy Docker Hub wymaga przesłania całego obrazu za każdym razem, gdy dokonuję zmiany?

  1. szarpana obrazu o nazwie: docker/whalesay
  2. Wbudowany kolejny obraz z niewielkimi zmianami.
  3. Odepchnęłam to w innej nazwie do mojego publicznego repozytorium (musiałem przesłać mniej więcej taki sam rozmiar, jaki pobrałem).
  4. Następnie zbudowałem kolejny obraz z tym publicznym obrazem jako punktem wyjścia.
  5. Miał tylko jedno polecenie. Ale znowu musiałem przesłać cały obraz z powrotem.

Moje pytanie brzmi, czy Docker nie powinien przesyłać tylko zmian? Przeczytałem to gdzieś. Wygląda na to, że robię jakiś głupi błąd, nie mogę uwierzyć, że musimy przesłać cały obraz za każdym razem po drobnych zmianach. Czy czegoś brakuje?

To Dockerfile używam do budowania wizerunku fishsay:

FROM docker/whalesay:latest 
RUN apt-get -y update && apt-get install -y fortunes 
CMD /usr/games/fortune -a | cowsay 

whalesay obraz był ~ 180 MB; więc kiedy popycham, czy nie muszę po prostu przesłać zmienione warstwy?

+0

Jak się buduje swój drugi obraz? Z 'Dockerfile' zaczynającym się od' FROM docker/whalesay'? – VonC

+0

Co to jest użycie cmd do zbudowania obrazu? – askb

+0

'docker build -t fishsay .' z katalogu zawierającego plik' Dockerfile'. –

Odpowiedz

1

Wszelkie zmiany w warstwie na obrazie wymagają aktualizacji w repozytorium, gdy zadzwonisz pod numer docker push. Może to być niewielkie i trywialne, na przykład dodanie nowego obrazu (np. Vi). Jednak spowoduje to utworzenie nowych warstw i zastąpienie istniejących warstw, powodując różne identyfikatory warstw, z tego, co już znajduje się w rejestrze. docker push powoduje przesłanie wszystkich nowych warstw utworzonych w rejestrze, z wyłączeniem obrazu podstawowego.

+1

Rozumiem to; ale czy kolejne warstwy nie są dodawane jako dodatek, a nie łączone z poprzednimi warstwami i zamieniane na coś innego, co wymaga ponownego przesłania wszystkiego? –

0

Ja również stoi sam problem, co ja przyszedłem to

https://github.com/docker/docker/issues/18866#issuecomment-192770785 https://github.com/docker/docker/issues/14018

Jak wspomniano w powyższych linków ta funkcja jest zaimplementowana w Docker silnika 1.10/Registry 2.3.

A po pocztą Döcker wsparcia Dostałem następującą odpowiedź

Witam,

Niestety, nie mamy żadnych harmonogramy kiedy aktualizacje Docker Hub będzie zdarzyć, że może udostępniać publicznie. Przepraszamy za wszelkie problemy. spowodowane przez to.

/Jeff

Powiązane problemy