Docker
Afbeeldingen beheren
Zoeken…
Syntaxis
- afbeeldingen docker [OPTIONS] [REPOSITORY [: TAG]]
- docker inspecteert [OPTIES] CONTAINER | IMAGE [CONTAINER | IMAGE ...]
- docker pull [OPTIONS] NAME [: TAG | @DIGEST]
- docker rmi [OPTIONS] IMAGE [IMAGE ...]
- docker tag [OPTIONS] IMAGE [: TAG] [REGISTRYHOST /] [USERNAME /] NAME [: TAG]
Een afbeelding ophalen van Docker Hub
Gewoonlijk worden afbeeldingen automatisch opgehaald uit Docker Hub . Docker probeert een afbeelding uit Docker Hub op te halen die nog niet bestaat op de Docker-host. Als u bijvoorbeeld Docker gebruikt, docker run ubuntu
wanneer de ubuntu
afbeelding nog niet op de Docker-host staat, zorgt Docker ervoor dat de nieuwste ubuntu
afbeelding wordt ubuntu
. Het is mogelijk om een afbeelding afzonderlijk te trekken door docker pull
te gebruiken om een afbeelding handmatig uit Docker Hub op te halen of bij te werken.
docker pull ubuntu
docker pull ubuntu:14.04
Er zijn extra opties voor het ophalen van een ander afbeeldingsregister of het ophalen van een specifieke versie van een afbeelding. Het aangeven van een alternatief register gebeurt met de volledige afbeeldingsnaam en optionele versie. Met de volgende opdracht wordt bijvoorbeeld geprobeerd de ubuntu:14.04
afbeelding uit het registry.example.com
registry.example.com te halen:
docker pull registry.example.com/username/ubuntu:14.04
Lijst met lokaal gedownloade afbeeldingen
$ 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
Verwijzen naar afbeeldingen
Docker-opdrachten die de naam van een afbeelding aannemen, accepteren vier verschillende vormen:
Type | Voorbeeld |
---|---|
Korte ID | 693bce725149 |
Naam | hello-world (standaard ingesteld op :latest tag) |
Naam + tag | hello-world:latest |
Verteren | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Opmerking: u kunt alleen naar een afbeelding verwijzen aan de hand van de samenvatting als die afbeelding oorspronkelijk met die samenvatting is getrokken. Om de samenvatting voor een afbeelding te zien (als die beschikbaar is) voert u docker images --digests
.
Afbeeldingen verwijderen
De opdracht docker rmi
wordt gebruikt om afbeeldingen te verwijderen:
docker rmi <image name>
De volledige afbeeldingsnaam moet worden gebruikt om een afbeelding te verwijderen. Tenzij de afbeelding is getagd om de registernaam te verwijderen, moet deze worden opgegeven. Bijvoorbeeld:
docker rmi registry.example.com/username/myAppImage:1.3.5
Het is ook mogelijk om afbeeldingen op basis van hun ID te verwijderen:
docker rmi 693bce725149
Voor het gemak is het mogelijk afbeeldingen op basis van hun afbeelding-ID te verwijderen door alleen de eerste paar tekens van de afbeelding-ID op te geven, zolang de opgegeven substring ondubbelzinnig is:
docker rmi 693
Opmerking: afbeeldingen kunnen worden verwijderd, zelfs als er bestaande containers zijn die die afbeelding gebruiken; docker rmi "maakt de afbeelding eenvoudig".
Als geen enkele container een afbeelding gebruikt, wordt deze vuilnis verzameld. Als een container een afbeelding gebruikt, wordt de afbeelding vuilnis verzameld zodra alle containers die deze gebruiken zijn verwijderd. Bijvoorbeeld:
$ 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
Verwijder alle afbeeldingen zonder gestarte containers
Om alle lokale afbeeldingen te verwijderen die geen gestarte containers hebben, kunt u een lijst van de afbeeldingen als parameter opgeven:
docker rmi $(docker images -qa)
Verwijder alle afbeeldingen
Als je afbeeldingen wilt verwijderen, ongeacht of ze al dan niet een gestarte container hebben, gebruik dan de force flag ( -f
):
docker rmi -f $(docker images -qa)
Bungelende afbeeldingen verwijderen
Als een afbeelding niet is getagd en door geen enkele container wordt gebruikt, 'bungelt' deze en kan deze als volgt worden verwijderd:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Zoek in de Docker Hub naar afbeeldingen
U kunt Docker Hub zoeken naar afbeeldingen met behulp van de zoekopdracht :
docker search <term>
Bijvoorbeeld:
$ 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]
...
Afbeeldingen inspecteren
docker inspect <image>
De uitvoer is in JSON-indeling. U kunt het opdrachtregelprogramma jq
gebruiken om alleen de gewenste toetsen te parseren en af te drukken.
docker inspect <image> | jq -r '.[0].Author'
De bovenstaande opdracht toont de auteursnaam van de afbeeldingen.
Afbeeldingen taggen
Een afbeelding taggen is handig om verschillende afbeeldingsversies bij te houden:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Een ander voorbeeld van taggen:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Docker-afbeeldingen opslaan en laden
docker save -o ubuntu.latest.tar ubuntu:latest
Met deze opdracht wordt de ubuntu:latest
afbeelding opgeslagen als een tarball-archief in de huidige map met de naam ubuntu.latest.tar
. Dit tarball-archief kan vervolgens worden verplaatst naar een andere host, bijvoorbeeld met behulp van rsync
, of worden gearchiveerd in de opslag.
Nadat de tarball is verplaatst, maakt de volgende opdracht een afbeelding uit het bestand:
docker load -i /tmp/ubuntu.latest.tar
Het is nu mogelijk om containers te maken van de ubuntu:latest
afbeelding zoals gewoonlijk.