Docker Engine
совместно с Docker Compose
(о нем поговорим вдругой раз), так как последний позволяет минимизировать рутину. Поэтому в данном статье рассмотрю лишь необходимый функционал самого Docker Engine
.Почитать о том что такое Docker Engine
можно в официальной документации или по-русски здесь.
Инструкция по установке проста, ее можно найти в документации.
Docker Engine
требует работы от sudo
, добавим текущего (нужного) пользователя в группу docker
и от него можно запускать без sudo
:
bash$ sudo usermod -aG docker $USER
Список локальных образов:
bash$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE mdk_php latest c2aff72a5148 5 hours ago 487MB php 7.3-cli d29faad18647 2 weeks ago 467MB mysql 5.7 c20987f18b13 2 weeks ago 448MB
--digests
- показать sha256
образов из глобального репозитория (добавляет в таблицу столбец DIGEST
)--no-trunc
- не обрезать вывод информации образов, не будет обрезаться IMAGE ID
- sha256
локального образа -q
, --quiet
- показать только идентификаторы образов (IMAGE ID
, разделенные новой строкой)-q
(--quiet
) поможет в "массовости" действий, например удалить все образы docker rmi $(docker images -q)
Удалить образ(ы):
bash$ docker rmi ID
-f
, --force
- принудительноСписок контейнеров (без аргументов/по умолчанию - запущенных)
bash$ docker ps # или # docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7808a98abfc9 mysql:5.7 "docker-entrypoint.s…" 4 hours ago Exited (0) 3 hours ago mysql e766de48ddbb php:7.1-cli "docker-php-entrypoi…" 3 days ago Exited (0) 3 days ago adoring_dhawan 5137e6cf2aca hello-world "/hello" 3 days ago Exited (0) 3 days ago laughing_brattain
аргументы:
-a
, --all
- показать все контейнеры (запущенные/остановленные)-q
, --quiet
- показать только список идентификаторов (CONTAINER ID
) разделенных переводом строки-n
, --last
N - показать N последних созданных контейнеров-s
, --size
- добавить в сводную таблицу столбец с обозначающий размер образаbash$ docker exec -it id_or_name /bin/bash
В данном случае используется 2 опции, которые позволяют в интерактивном режиме войти в контейнер и предоставить средства для ввода команд:
-i
, --interactive
- запустить в интерактивном режиме-t
, --tty
- выделить псевдо TTYexec
:
-u
, --user
- указать пользователя, от имени которого будет выполняться команда (<name|uid>[:<group|gid>)
)-w
, --workdir
- указать рабочую директорию для выполнения командыbash$ docker rm id_or_name
-f
, --force
- принудительное удаление работающего (SIGKILL
)-v
, --volumes
- удалить тома связанные с контейнеромСписок сетей:
bash$ docker network ls NETWORK ID NAME DRIVER SCOPE 5ed3c66871b5 bridge bridge local 92fa558c94fd mdk_app-network bridge local fc3a6f2c3c05 opencart30_app-network bridge local 722176324d31 shop-script_app-network bridge local
Информация по одной или нескольким сетям (где в качестве указания сети может быть ID
или NAME
):
bashdocker network inspect mdk_app-network [ { "Name": "mdk_app-network", "Id": "92fa558c94fdd9aeaa9eef9942955d4185ef8ddf68c86c619d840ff197756918", "Created": "2022-02-06T13:16:38.612580291+03:00", "Scope": "local", "Driver": "bridge", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": null, "Config": [ { "Subnet": "192.168.0.1/24", "Gateway": "192.168.0.1" } ] }, "Internal": false, "Attachable": true, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": {}, "Options": {}, "Labels": { "com.docker.compose.network": "app-network", "com.docker.compose.project": "mdk", "com.docker.compose.version": "1.25.0" } } ]
Удалить все ресурсы (образы, тома, сети) не связанные с контейнерами (висящие ресурсы):
bash$ docker system prune
-a
, --all
- удалить все ресурсы не связанные с запущенными контейнерами (и висящие и неиспользуемые ресурсы), т.е. удалить все кроме работающего