Hur man paketerar och överför Docker -bilder från en server till en annan

0
108

Om du har byggt en Docker -bild på din utvecklingsmaskin, och vill distribuera den på en server kan du använda ett Docker-register, men Docker har också verktyg för att spara bilder till filer och ladda dem på en annan server.

Du behöver inte ett behållarregister

Vanligtvis, för att överföra en build av en behållare (kallad bild) till en fjärrserver, använder du ett Docker -behållarregister. Detta är den överlägset bästa metoden — det är en enda auktoritetspunkt, vilket gör det enkelt att distribuera uppdateringar på flera servrar. Detta kräver inte heller att du gör containern offentlig; Det finns gott om fantastiska privata containerregister, till exempel Googles GCR och AWS ECS. Docker Hub stöder till och med privata förråd. Om du bara är orolig för sekretess, byt till ett privat register och fortsätt använda dockare push och docker pull.

Men för dem som vill göra det på gammaldags sätt innehåller Docker CLI några verktyg för att spara bilder till filer och ladda dem på en fjärrserver.

För att spara en bild kan du använda docker save , ange en utdatafil och ange sedan ett bildnamn och en tagg:

docker save -o ./savedimage imagename: tag

Om du inte anger en tagg, packar Docker alla taggar. < /p> Annons

Detta serialiserar och sparar en kopia av bilden under utdatafilen. Bilden lagras som en tarfile. Om du vill spara det som tar.gz kan du utelämna -o -flaggan och leda utmatningen till gzip:

docker save imagename: tag | gzip & gt; saveimage.tar.gz

Du kan sedan ta den här filen och scp- eller FTP -kopian till målservern. När den väl är där kan du använda dockningsbelastning för att importera den igen:

docker load -i sparad bild

Detta gör bilden tillgänglig på målsystemet som om du hade kört docker build. -t bildnamn. Du kan använda den precis som en lokalt byggd avbildning med dockningscontainerkörning:

docker container run image name