Pokud jste v Dockeru nováčkem, možná jste ještě nezjistili, jak sdílet kontejnery a obrázky s jinými vývojáři nebo počítači. Je ale možné sdílet kontejnery? Ano! Nechte docker save
image a docker export
image příkaz do triku!
V tomto tutoriálu se naučíte ukládat a exportovat kontejnery a obrázky pro sdílení spuštěním příkazů Dockeru.
připraveni? Začněme!
Předpoklady
Tento tutoriál bude praktickou ukázkou. Pokud je chcete sledovat, ujistěte se, že máte následující:
- V tomto kurzu se používá Docker Desktop nebo Engine nainstalovaný jako verze 20.10.7.
- V tomto kurzu je použit jakýkoli operační systém kompatibilní s Dockerem, Ubuntu.
Vytvoření základní aplikace Docker
Než přejdete k exportu nebo uložení kontejnerů a obrázků Dockeru, musíte nejprve vytvořit aplikaci, kterou budete používat pro účely sdílení. Vytvoříte základní aritmetické řešení jako ukázkovou aplikaci Docker prostřednictvím prostředí příkazového řádku.
1. Vytvořte soubor pro svůj projekt s názvem Dockerfile
a vložte níže uvedený kód do nově vytvořeného Dockerfile
.
Níže uvedený kód provede základní aritmetickou operaci, jejímž výsledkem je hodnota 10.
# busybox provides Unix utilities in a single executable file,
# which enables you to do some arithmetic.
FROM busybox
# Performs a basic arithmetic operation that results in a value of 10.
CMD echo $(((20*5)/10))
2. Dále otevřete svůj terminál a spusťte docker build
příkaz níže k sestavení aplikace s názvem (arithmetic
) na pracovním místě (.
).
docker build --tag arithmetic .
Pokud používáte Linux, možná budete muset přidat před příkaz sudo, abyste se vyhnuli chybě „povolení odepřeno“, jako je tato:
sudo docker build --tag arithmetic
. Přidánísudo
příkaz povýší příkaz na správce.
3. Provedením níže uvedeného příkazu spusťte vámi vytvořenou aplikaci Docker (arithmetic
). Spuštění aplikace Docker také automaticky vytvoří kontejner pro vaši aplikaci.
docker run arithmetic
Export kontejnerů Docker
Nyní, když máte základní aplikaci Docker, je čas probrat, jak exportovat kontejner Docker. Vytvoření velké aplikace trvá dlouho a může být obtížné, pokud chcete kontejner pouze sdílet se svým týmem. Existuje tedy rychlejší způsob sdílení kontejneru? Ano!
Místo vytváření aplikace přímo z Dockerfile exportujte Docker kontejner.
1. Spusťte docker
příkaz níže k vypsání všech (ls --all
) containers
k dispozici na vašem stroji. Poznamenejte si CONTAINER ID
kontejneru, který chcete sdílet, protože jej budete potřebovat k exportu kontejneru v dalším kroku.
Upozorňujeme, že exportovat můžete pouze kontejnery, nikoli obrázky.
docker container ls --all
2. Dále spusťte níže uvedený příkaz pro export
kontejner Docker podle vašeho výběru (container-id
). Nahraďte container-id
s ID kontejneru, které jste si poznamenali v prvním kroku.
Při exportu uložíte souborový systém kontejneru do .tar archiv (arithmetic.tar
).
docker export container-id > arithmetic.tar
3. Nakonec zkontrolujte složku projektu ve správci souborů a uvidíte, že nový .tar archiv byl vytvořen (arithmetic.tar ). Protože jste kontejner exportovali do .tar archiv, nyní jej můžete sdílet s kýmkoli.
Import kontejnerů Docker
Místo exportu možná budete muset importovat kontejner Dockeru, který s vámi sdílel spoluhráč. Pokud ano, docker import
příkaz je to, co potřebujete. docker import
příkaz převezme exportovaný souborový systém a převede jej na obrazový souborový systém, který můžete spustit na svém počítači.
1. Spusťte následující docker
příkaz import
kontejner (arithmetic.tar
) a převést jej na obrázek. Při importu je nutné připojit značku (latest
) a pojmenujte obrázek (put_any_name_here
), Jak je ukázáno níže.
docker import arithmetic.tar put_any_name_here:latest
2. Dále spusťte níže uvedený příkaz a vypište všechny existující obrázky Docker, abyste mohli ověřit, zda existuje nový obrázek.
docker images
Níže můžete vidět, že existuje nový obrázek Dockeru.
3. Nyní spusťte docker run
příkaz níže pro otevření shellu (sh
) pro importovaný obrázek. Kontejner běží interaktivně a je připojen k vašemu terminálu (-i
a -t
vlajky).
docker run -i -t put_any_name_here:latest sh
Podle výzvy níže (/ #) poznáte, že se nyní nacházíte v shellu importovaného obrázku.
4. Nakonec spusťte níže uvedený příkaz a zjistěte, zda obraz funguje podle očekávání.
echo $(((20*5)/10))
Pokud obrázek funguje, získáte výstup 10 , Jak je ukázáno níže.
Pokud se pokusíte spustit obrázek přímo, zobrazí se chyba, jak je uvedeno níže, protože importovaný obrázek je obrázek systému souborů.
Ukládání obrázků pomocí Dockeru Uložit obrázek
Možná budete chtít uložit obrázek Docker spíše než kontejner. Pokud ano, použijte docker save
místo toho příkaz image. Na rozdíl od docker export
příkaz docker save
příkaz umožňuje uložit jeden nebo více obrázků přímo do archivu tar a sdílet je s kýmkoli.
Všimněte si, že můžete ukládat a načítat pouze obrázky Docker, nikoli kontejnery.
- Spusťte příkaz níže a uložte obrázek Dockeru (aritmetický) do preferovaného souboru .tar archiv (
arm_image.tar
). Nyní můžete sdílet .tar archivovat s ostatními vývojáři, aby mohli načíst obrázek.
docker save arithmetic > arm_image.tar
2. Nyní spusťte níže uvedený příkaz a vytvořte adresář s názvem dle vašeho výběru (mkdir arm
). Ale pro toto demo se adresář jmenuje arm
. Příkaz poté extrahuje obrázek z .tar archiv (-xf arm_image.tar
) do nového adresáře (arm
).
Extrahování obsahu .tar archiv vám umožňuje potvrdit, zda jste obrázek uložili do souboru .tar archiv existuje.
mkdir arm && tar -xf arm_image.tar -C arm
3. Nakonec spusťte tree
příkazem níže zobrazíte strom adresářů obrázku, který jste extrahovali v ~/arm
adresář. tree ~/arm
Níže vidíte soubory a podadresáře v adresáři, kam jste extrahovali obrázek Docker.
Pokud plánujete sdílet svůj obrázek Docker v centru Docker, nejlepší možností je spustit
docker save
příkaz. Proč? Pomocídocker save command
, v podstatě ukládáte obrázek přesně tak, jak má běžet. Obrázky můžete také zveřejňovat pouze na centru Docker, takže určitědocker export command
není dobrá volba.
Načítání obrázků Docker
Za předpokladu, že jste již uložili obrázek pro účely zálohování nebo sdílení, jak byste jej nahráli do počítače? Žádný strach, docker load
příkaz může pomoci. docker load
umožňuje načíst obrázek nebo úložiště do vašeho počítače a obnovit obrázky i značky.
Chcete-li lépe vidět, jak se docker load
příkaz funguje, odstraňte všechny dříve vytvořené obrázky Docker.
1. Spuštěním příkazu níže zobrazíte seznam všech images
Dockeru ve vašem stroji.
docker images
Níže vidíte, že jsou k dispozici dva obrázky. Poznamenejte si ID OBRÁZKU každého z obrázků protože tyto obrázky v dalším kroku smažete.
2. Spusťte níže uvedený příkaz pro odstranění (rm
) Ukotvitelné obrázky podle vámi zadaných ID obrázků. Nahraďte imageID1
a imageID2
s ID obrázků, které jste si poznamenali v prvním kroku.
docker image rm imageID1 imageID2
3. Nyní spusťte docker load
příkaz níže k načtení obrázku z .tar archiv (arm_image.tar
).
docker load < arm_image.tar
4. Znovu spusťte docker images
stejně jako v prvním kroku zobrazíte všechny dostupné obrázky ve vašem počítači. docker images
docker images
Níže vidíte nově načtený obrázek.
5. Nakonec spusťte níže uvedený příkaz a otestujte, zda obraz funguje.
docker run arithmetic
Všimněte si, že příkaz vrátil hodnotu 10, což znamená, že načtený obrázek funguje.
Závěr
V tomto kurzu jste se naučili exportovat a importovat kontejnery a také načítat a ukládat obrázky. Nyní byste měli mít základní znalosti o převodu obrázků a kontejnerů uložených v Dockeru do formy, kterou lze sdílet, jako je soubor TAR.
V určitém okamžiku budete muset sdílet svůj obrázek nebo kontejner Docker. Jak nyní plánujete začlenit tyto nově nalezené znalosti při práci s kontejnery a obrazy Docker, možná se zálohovacím systémem?