Vytvořili jste obrázek Dockeru, který potřebujete sdílet s kolegou? Zde je návod, jak můžete distribuovat obrázek, aniž by příjemce musel spouštět docker build
sami.
Sdílení předem vytvořeného obrázku namísto Dockerfile
vám umožní mít jistotu, že váš kolega používá přesně stejný software. Opětovné spuštění sestavení by mohlo vést k mírně odlišnému prostředí. Máte dvě možnosti distribuce obrázku v závislosti na situaci.
Použití registru Docker
Nejjednodušší způsob, jak sdílet obraz Dockeru, je poslat jej do registru Docker. Tato funkce je plně integrována do rozhraní CLI Dockeru. Při použití této metody nemusíte provádět žádné ruční přenosy souborů.
Výchozí registr je Docker Hub. To vám umožní veřejně sdílet obrázky a také vám poskytne jedno soukromé úložiště. Vytvořte si účet na Docker Hub a poté spusťte docker login
ve vašem terminálu. Zadáním podrobností o svém účtu propojíte Docker CLI se svým účtem.
Poté vytvořte obrázek jako obvykle pomocí docker build
. Přidejte značku, která začíná vaším uživatelským jménem Docker Hub:
docker build -t my-account/my-image:latest .
Poté použijte docker push
příkaz k odeslání označeného obrázku do Docker Hub:
docker push my-account/my-image:latest
Nyní je váš obrázek bezpečně uložen v Docker Hub. Ostatní uživatelé jej budou moci stáhnout pomocí docker pull
nebo docker run
příkazy. Se sdílením obrázku jste skončili!
Pro použití v reálném světě nemusí Docker Hub stačit. Pokud jste součástí vývojového týmu, pravděpodobně budete chtít uchovávat obrázky na svém vlastním serveru, nikoli ve veřejném registru Hub. Místo toho můžete vytvořit server registru s vlastním hostitelem, abyste získali soukromé úložiště, které je plně kompatibilní s docker push
a docker pull
příkazy. To vám umožní snadno sdílet obrázky s kýmkoli, kdo má přístup k vašemu soukromému registru.
Export obrázků
Pokud použití registru není možné, můžete archivy obrázků Docker exportovat ručně. Tato funkce je také zabudována do rozhraní CLI Dockeru. Vytvořte svůj obrázek a poté použijte docker save
příkaz k získání tar
archiv jeho obsahu:
docker save my-image:latest > my-image.tar
Dokončení exportu může chvíli trvat. Docker bude obsahovat vše potřebné k opětovnému vytvoření obrázku – to jsou všechny vrstvy ve vašem Dockerfile
, stejně jako vrstvy zděděné ze základního obrázku. Archiv bude také obsahovat informace o značkách spojených s obrázkem.
Jako výstup je jednoduchý tar
soubor, nyní jej můžete volně distribuovat jakýmkoli způsobem, který si zvolíte. Archivy mohou být poměrně velké, takže obvykle nejlépe dosáhnete, když je nahrajete na souborový server nebo poskytovatele cloudového úložiště.
Chcete-li použít exportovaný obrázek, spusťte docker load
příkaz. To přijímá tar
archiv vytvořený docker save
jako vstupní proud. Docker načte obsah archivu a přidá jej do vašeho seznamu místních obrázků.
docker load < my-image.tar
Nově importovaný obrázek nyní uvidíte ve svých docker images
výstup. Jste připraveni spustit nový kontejner pomocí docker run
.
Export a import obrázků přidává několik kroků navíc oproti použití registru Docker. Budete muset ručně přenést soubor mezi klienty. V důsledku toho je tento přístup méně vhodný pro časté používání, i když má také své výhody.
Převod obrázků na tar
archiv může být užitečný pro dlouhodobé skladování. Pokud vám dochází místo na serveru registru, archivujte staré obrázky a nahrajte jejich tars
zálohování úložiště souborů by mohlo být nákladově efektivním způsobem, jak získat zpět určitou kapacitu. Pokud byste to někdy v budoucnu potřebovali, stále budete moci obrázek obnovit.
A co „export dockeru“?
Docker má další příkaz související s exportem, docker export
. Toto by nemělo být zaměňováno s docker save
. Zatímco save
pracuje s obrázky, export
ve skutečnosti spravuje jednotlivé kontejnery .
docker export
vytvoří tar
archiv souborového systému kontejneru. To lze použít k obnovení repliky kontejneru na jiném počítači. Pokud si prohlédnete obsah archivu, uvidíte, že se jedná pouze o běžný kořenový souborový systém Linuxu s adresáři jako /bin
, /etc
a /usr
.
docker export my-container > my-container.tar
docker export
je užitečné, pokud chcete vytvořit snímek kontejneru pro pozdější obnovu. Archivy kontejnerů se však neimportují tak, jak byste na první pohled očekávali. Jelikož kontejner představuje živé běžící prostředí, nemůžete jej přímo „importovat“. Místo toho import kontejnerového archivu vytvoří nový obrázek.
docker import my-container.tar my-image:latest
V tomto příkladu Docker vezme souborový systém v my-container.tar
a automaticky vytvoří nový obrázek s názvem my-image:latest
. To bude mít stejný souborový systém, ale ne stejný základní obraz nebo konfiguraci Dockeru jako původní kontejner, který jste exportovali.
SOUVISEJÍCÍ: Jak začít s novým registrem kontejnerů Docker společnosti Github
Přehled
Docker usnadňuje sdílení obrazů aplikací a vývojových prostředí s vašimi spolupracovníky. Obvykle je nejlepší poslat obrázky do centralizovaného úložiště, ze kterého mohou stahovat všichni ostatní. V některých scénářích může být smysluplnější exportovat obrázek do archivu, který distribuujete ručně.
Docker také umožňuje exportovat souborový systém kontejneru pro pozdější obnovení do bitové kopie. Při používání buďte opatrní, protože se nejedná o přesnou rekonstrukci a neobsahují všechna data souborového systému. Žádné svazky připojené k původnímu kontejneru nebudou zahrnuty do archivu souborového systému, takže byste měli podniknout kroky k jejich samostatnému zálohování.