Docker
Zarządzanie obrazami
Szukaj…
Składnia
- obrazy dokerów [OPCJE] [REPOSITORY [: TAG]]
- doker sprawdź [OPCJE] POJEMNIK | OBRAZ [POJEMNIK | OBRAZ ...]
- ściąganie dokerów [OPCJE] NAZWA [: TAG | @DIGEST]
- docker rmi [OPCJE] OBRAZ [OBRAZ ...]
- tag dokera [OPCJE] IMAGE [: TAG] [REGISTRYHOST /] [USERNAME /] NAME [: TAG]
Pobieranie obrazu z Docker Hub
Zwykle obrazy są pobierane automatycznie z Docker Hub . Docker podejmie próbę pobrania dowolnego obrazu z Docker Hub, który jeszcze nie istnieje na hoście Docker. Na przykład użycie narzędzia docker run ubuntu
gdy obraz ubuntu
nie jest jeszcze na hoście Docker, spowoduje, że Docker zainicjuje ściągnięcie najnowszego obrazu ubuntu
. Możliwe jest osobne docker pull
obrazu za pomocą narzędzia docker pull
aby ręcznie pobrać lub zaktualizować obraz z Docker Hub.
docker pull ubuntu
docker pull ubuntu:14.04
Istnieją dodatkowe opcje pobierania z innego rejestru obrazów lub pobierania określonej wersji obrazu. Wskazanie alternatywnego rejestru odbywa się przy użyciu pełnej nazwy obrazu i opcjonalnej wersji. Na przykład następujące polecenie spróbuje wyciągnąć obraz ubuntu:14.04
z registry.example.com
register.example.com:
docker pull registry.example.com/username/ubuntu:14.04
Wyświetlanie lokalnie pobranych zdjęć
$ 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
Odwoływanie się do zdjęć
Polecenia dokera, które przyjmują nazwę obrazu, akceptują cztery różne formy:
Rodzaj | Przykład |
---|---|
Krótki identyfikator | 693bce725149 |
Nazwa | hello-world (domyślnie :latest tag) |
Nazwa + tag | hello-world:latest |
strawić | hello-world@sha256:e52be8ffeeb1f374f440893189cd32f44cb166650e7ab185fa7735b7dc48d619 |
Uwaga: do obrazu można odwołać się tylko po jego streszczeniu, jeśli obraz ten został pierwotnie pobrany za pomocą tego skrótu. Aby zobaczyć podsumowanie obrazu (jeśli taki jest dostępny), uruchom docker images --digests
.
Usuwanie obrazów
Polecenie docker rmi
służy do usuwania obrazów:
docker rmi <image name>
Aby usunąć obraz, należy użyć pełnej nazwy obrazu. O ile obraz nie został oznaczony w celu usunięcia nazwy rejestru, należy go określić. Na przykład:
docker rmi registry.example.com/username/myAppImage:1.3.5
Zamiast tego można również usunąć obrazy według ich identyfikatora:
docker rmi 693bce725149
Dla wygody możliwe jest usuwanie obrazów według ich ID obrazu, podając tylko kilka pierwszych znaków ID obrazu, o ile określony podciąg jest jednoznaczny:
docker rmi 693
Uwaga: obrazy można usunąć, nawet jeśli istnieją istniejące kontenery, które używają tego obrazu; docker rmi po prostu „odznacza” obraz.
Jeśli żaden kontener nie korzysta z obrazu, jest on odśmiecany. Jeśli kontener korzysta z obrazu, obraz zostanie wyrzucony do pamięci po usunięciu wszystkich kontenerów, które z niego korzystają. Na przykład:
$ 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
Usuń wszystkie obrazy bez uruchomionych pojemników
Aby usunąć wszystkie lokalne obrazy, które nie mają uruchomionych kontenerów, możesz podać listę obrazów jako parametr:
docker rmi $(docker images -qa)
Usuń wszystkie obrazy
Jeśli chcesz usunąć obrazy niezależnie od tego, czy mają one otwarty kontener, użyj flagi wymuszenia ( -f
):
docker rmi -f $(docker images -qa)
Usuń zwisające obrazy
Jeśli obraz nie jest oznaczony i nie jest używany przez żaden kontener, jest „wiszący” i można go usunąć w następujący sposób:
docker images -q --no-trunc -f dangling=true | xargs -r docker rmi
Wyszukaj obrazy w Docker Hub
Możesz wyszukiwać obrazy w Docker Hub za pomocą polecenia wyszukiwania :
docker search <term>
Na przykład:
$ 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]
...
Sprawdzanie zdjęć
docker inspect <image>
Dane wyjściowe są w formacie JSON. Za pomocą narzędzia wiersza polecenia jq
można analizować i drukować tylko żądane klawisze.
docker inspect <image> | jq -r '.[0].Author'
Powyższe polecenie pokaże nazwę autora obrazów.
Oznaczanie zdjęć
Tagowanie obrazu jest przydatne do śledzenia różnych wersji obrazu:
docker tag ubuntu:latest registry.example.com/username/ubuntu:latest
Kolejny przykład tagowania:
docker tag myApp:1.4.2 myApp:latest
docker tag myApp:1.4.2 registry.example.com/company/myApp:1.4.2
Zapisywanie i ładowanie obrazów Docker
docker save -o ubuntu.latest.tar ubuntu:latest
To polecenie zapisze ubuntu:latest
obraz jako archiwum tarball w bieżącym katalogu o nazwie ubuntu.latest.tar
. To archiwum tarball można następnie przenieść na inny host, na przykład przy użyciu rsync
, lub zarchiwizować w pamięci.
Po przeniesieniu tarballa następujące polecenie utworzy obraz z pliku:
docker load -i /tmp/ubuntu.latest.tar
Teraz możliwe jest tworzenie kontenerów z ubuntu:latest
obraz jak zwykle.