Docker
Hantera bilder
Sök…
Syntax
- docker images [OPTIONS] [REPOSITORY [: TAG]]
- docker inspektera [OPTIONS] CONTAINER | IMAGE [CONTAINER | IMAGE ...]
- docker pull [OPTIONS] NAME [: TAG | @DIGEST]
- docker rmi [OPTIONS] IMAGE [IMAGE ...]
- docker tag [OPTIONS] IMAGE [: TAG] [REGISTRYHOST /] [USERNAME /] NAME [: TAG]
Hämtar en bild från Docker Hub
Vanligtvis dras bilder automatiskt från Docker Hub . Docker kommer att försöka dra någon bild från Docker Hub som inte redan finns på Docker-värden. Om du till exempel använder docker run ubuntu
när ubuntu
bilden inte redan finns på Docker-värden kommer Docker att initiera en dragning av den senaste ubuntu
bilden. Det är möjligt att dra en bild separat med hjälp av docker pull
att manuellt hämta eller uppdatera en bild från Docker Hub.
docker pull ubuntu
docker pull ubuntu:14.04
Ytterligare alternativ för att dra från ett annat bildregister eller dra en specifik version av en bild finns. Indikerar ett alternativt register görs med fullständigt bildnamn och valfri version. Exempelvis kommer följande kommando att försöka dra ubuntu:14.04
bilden från registry.example.com
registret:
docker pull registry.example.com/username/ubuntu:14.04
Visar lokalt nedladdade bilder
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest 693bce725149 6 days ago 967 B
postgres 9.5 0f3af79d8673 10 weeks ago 265.7 MB
postgres latest 0f3af79d8673 10 weeks ago 265.7 MB
Referera bilder
Docker-kommandon som tar namnet på en bild accepterar fyra olika former:
Typ | Exempel |
---|---|
Kort ID | 693bce725149 |
namn | hello-world (som standard :latest taggen) |
Namn + tagg | hello-world:latest |
Smälta | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Obs! Du kan bara hänvisa till en bild efter dess digest om den bilden ursprungligen drogs med denna digest. För att se uppfattningen för en bild (om en är tillgänglig) kör docker images --digests
.
Ta bort bilder
docker rmi
används för att ta bort bilder:
docker rmi <image name>
Det fullständiga bildnamnet måste användas för att ta bort en bild. Om inte bilden har taggats för att ta bort registernamnet, måste den anges. Till exempel:
docker rmi registry.example.com/username/myAppImage:1.3.5
Det är också möjligt att ta bort bilder med deras ID istället:
docker rmi 693bce725149
Som en bekvämlighet är det möjligt att ta bort bilder med deras bild-ID genom att endast ange de första tecknen i bild-ID, så länge den angivna substrängen är otvetydig:
docker rmi 693
Obs! Bilder kan tas bort även om det finns befintliga behållare som använder den bilden; docker rmi helt enkelt "avmarkerar" bilden.
Om inga behållare använder en bild, samlas det i skräp. Om en behållare använder en bild kommer bilden att samlas in efter att alla behållare som använder den har tagits bort. Till exempel:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b hello-world "/hello" Less than a second ago Exited (0) 2 seconds ago small_elion
$ docker rmi hello-world
Untagged: hello-world:latest
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
5483657ee07b 693bce725149 "/hello" Less than a second ago Exited (0) 12 seconds ago small_elion
Ta bort alla bilder utan påbörjade behållare
För att ta bort alla lokala bilder som inte har startade behållare kan du ange en lista över bilderna som en parameter:
docker rmi $(docker images -qa)
Ta bort alla bilder
Om du vill ta bort bilder oavsett om de har en startad behållare eller inte, använd kraftflaggan ( -f
):
docker rmi -f $(docker images -qa)
Ta bort dinglande bilder
Om en bild inte är taggad och inte används av någon behållare, är den "dinglande" och kan tas bort så här:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Sök i Docker Hub efter bilder
Du kan söka i Docker Hub efter bilder med hjälp av sökkommandot :
docker search <term>
Till exempel:
$ docker search nginx
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
nginx Official build of Nginx. 3565 [OK]
jwilder/nginx-proxy Automated Nginx reverse proxy for docker c... 717 [OK]
richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable ... 232 [OK]
...
Inspekterar bilder
docker inspect <image>
Utgången är i JSON-format. Du kan använda jq
kommandoradsverktyget för att analysera och skriva ut endast önskade tangenter.
docker inspect <image> | jq -r '.[0].Author'
Ovanstående kommando visar författarens namn på bilderna.
Märka bilder
Att märka en bild är användbart för att hålla reda på olika bildversioner:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Ett annat exempel på tagging:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Spara och ladda Docker-bilder
docker save -o ubuntu.latest.tar ubuntu:latest
Detta kommando sparar ubuntu:latest
bilden som ett tarball-arkiv i den aktuella katalogen med namnet ubuntu.latest.tar
. Detta tarballarkiv kan sedan flyttas till en annan värd, till exempel med hjälp av rsync
, eller arkiveras i lagring.
När tarballen har flyttats skapar följande kommando en bild från filen:
docker load -i /tmp/ubuntu.latest.tar
Nu är det möjligt att skapa containrar från ubuntu:latest
bilden som vanligt.