Hur Gör Docker Taggar Som Fungerar?

0
150

Docker bilder att använda register för version control, som Docker Hub som är värd för offentliga bilder för vem som helst att ladda ner och köra. Men innan du laddar upp en bild i Navet eller på något register, måste du ge det korrekta taggar.

Behållare vs. Bild

Det är viktigt att förstå skillnaden mellan behållare och bilder innan jag talar om-taggar eftersom de ofta används ganska omväxlande och att det kan leda till viss förvirring.

En Hamnarbetare bild är vad du får från att köra docker bygga med din Dockerfile. Det består av flera lager för att optimera disk och minne. En bild är skrivskyddad.

En Hamnarbetare container är ett exempel på en bild som de processer som faktiskt kör. Det är ett läs/skriv-filsystemet, så i grunden, en bild är en mall som du använder för att skapa flera containrar från. Det innehåller bas-kod och allt app behöver för att komma igång. Behållarna får initieras med bilden när den skapas, då det kan ändra filsystem som de vill.

Bilderna är vad du trycka till container-registret. Då, på dina servrar, kan du referera till bilden i registret för att ladda ner behållaren.

Taggar Spåra Versioner av Inbyggd Bilder

När du kör ett docker bygga, kan du skapa en ny bild med ett unikt ID som “38054d5e8a27.”

Taggar är etiketter helt enkelt att ge ett bättre sätt att hantera versionshantering och släpper. De är som etiketter som du kan tilldela någon klar bygga. Snarare än att referera till den bygga-ID, kan du markera en bild med en etikett som i de stora.moll.patch-format och enkelt kunna tala om vilken bild som är vilken, eller vilka format din organisation föredrar.

Märkning är ganska lätt. Du kan använda docker tag att göra det i efterhand, men det är mycket lättare att göra det när man bygger med hjälp av t flagg:

docker bygga -t-arkiv/bild:tagg .

Detta bygger bilden från Dockerfile och taggar den med taggen som du har angett. Taggen är den [:TAG] en del, efter semikolon, även om Docker kommer att säga “Framgångsrikt märkt arkiv/bild:tag.” Arkivet/image del är bara namnet på bilden, och om du planerar på att trycka till ett slutförvar, du måste märka det i förrådet/bild:tag format.

För Docker Nav, arkivnamn är bara ditt användarnamn, så kommandot skulle se något liknande:

docker bygga -t anthonyheddings/nginx:tagg .

Om du inte anger en specifik tagg, Docker automatiskt taggar som “den senaste.”

En annan vanlig metod är att tagga bilden med git commit ID, och därigenom koppla samman versionshantering med den inbyggda bilder. Du kan automatisera detta ganska enkelt med git rev-tolka:

docker bygga -t vicerust/core:$(git rev-tolka-kontrollera HUVUDET) .

När en bild är taggade, du kan driva det till registret med docker tryck, som går i förrådet/bild namn:

docker push-arkiv/bild

Från det, kommer du att kunna få tillgång till den i docker köra som vanligt. Om du inte anger ett tag, docker köras automatiskt använder senaste.

Senaste Betyder inte Alltid “Senaste”

Den “Senaste” – taggen är lite förvirrande. Trots hur namnet låter, att det inte alltid peka till den senaste versionen. Det är helt enkelt en särskild tagg som får tilldelas automatiskt när du inte ange ett tag. Det här har effekten av att undvika taggar helt och hållet och bara trycka på en “senaste” – version.

Du kan använda den senaste tagg antingen genom att helt enkelt inte ange en specifik tagg:

docker bygga -t-arkiv/bild .

Eller genom att manuellt tagga en bild som senaste:

docker bygga -t-arkiv/bild:senaste .

vilket fungerar bra om du bara använder den senaste etiketten. Men om du även vill använda version ID-taggar, som du behöver för att dubbel-tagga dina bilder varje gång, vilket kan leda till “senaste” inte alltid betyder att den sista byggt bild. Det är god praxis att undvika att använda den senaste tillsammans med andra taggar för att undvika denna förvirring. Bara versionen dina taggar, varje gång, antingen med manuell lapp nummer eller med git commit Id.