Docker CLI
В чем разница между buildx и просто build?
buildx
— это команда, которая использует BuildKit, новый, более мощный конструктор.
Как запустить несколько контейнеров?
Используйте Docker Compose.
Как собрать образ?
Параметры образа задаются в файле Dockerfile.
По умолчанию используется имя «Dockerfile».
docker build .
Задать имя образа:
docker build . --tag repo_name:image_name
Задать аргументы запуска:
docker build . --build-arg ARG_1_NAME=ARG_1_VALUE --build-arg ARG_2_NAME=ARG_2_VALUE
Использовать собственное имя для Dockerfile
:
docker build -f some/path/MyDockerfile
Другие полезные параметры:
--progress=plain
— выводить весь отчёт;--no-cache
— отключить кэширование;--rm
— удалить промежуточные контейнеры после успешной сборки;-q
,--quiet
— тихий режим, в случае успеха на выходе будет только идентификатор образа;
Как отобразить полный журнал при создании образа?
docker build . --progress=plain
Как отключить кэш при создании образа?
docker build . --no-cache
Как управлять контейнером (запускать/приостанавливать/перезапускать/останавливать)?
docker run -d --name MY_CONTAINER -p 80:5080 -p 443:5443 -e ASPNETCORE_URLS="http://+:5080;https://+:5443" ${IMAGE_ID_OR_NAME}
-d
,--detach
— запуск в фоновом режиме;-e
,--env
— позволяет установить переменные окружения;-p
,--publish
— перенаправляет порты (host_port:container_port
);--name
— задаёт имя контейнера;
Доступны типовые команды start
, pause
, restart
и stop
:
docker start ${CONTAINER_NAME_OR_ID}
Как посмотреть логи контейнера?
docker logs ${CONTAINER_NAME_OR_ID}
--details
— показать расширенные данные;-n
,--tail
— показать N строк с конца журнала;
Как удалить контейнер?
docker rm ${CONTAINER_NAME_OR_ID}
-f
,--force
— остановить и удалить, не задавать никаких вопросов;
Как получить список контейнеров?
docker ps
Все контейнеры, включая остановленные:
docker ps -a
Недавно созданные контейнеры:
docker ps -l
Запретить обрезание длинных строк:
docker ps --no-trunc
Для фильтрации вывода можно использовать grep
(только в системах Linux):
docker ps -a | grep ${SEARCH_STRING}
Как получить список образов?
docker image list --all
-a
,--all
- все образы;--no-trunc
- отключить обрезание длинных строк;
Как посмотреть историю образа?
docker image history ${IMAGE_NAME_OR_ID}
Как удалить образ?
docker rmi ${IMAGE_NAME_OR_ID}
Как получить имя автора образа?
docker inspect ${IMAGE_NAME_OR_ID}
Как посмотреть файлы контейнера?
docker create --name="${CONTAINER_NAME_OR_ID}" ${IMAGE_NAME_OR_ID}
docker export ${CONTAINER_NAME_OR_ID} | tar -t
docker rm ${CONTAINER_NAME_OR_ID}
Как экспортировать контейнер в файл?
docker export ${CONTAINER_NAME_OR_ID} > output.tar
Как выполнить команду в контейнере?
docker run --name ${CONTAINER_NAME_OR_ID} -d -i -t ${IMAGE_NAME_OR_ID} /bin/sh
docker exec -it ${CONTAINER_NAME_OR_ID} /bin/bash
docker exec -it ${CONTAINER_NAME_OR_ID} /bin/sh
Как очистить ресурсы?
Удалить неиспользуемые образы, контейнеры и сети
docker system prune
Остановить и удалите ВСЁ, ВСЁ, ВСЁ
docker system prune -a
Удалить только неиспользуемые образы
docker image prune
Удалить только остановленные контейнеры
docker container prune
Удалить только неиспользуемые тома
docker volume prune
Удалить только неиспользуемые сети
docker network prune