Перейти к основному содержимому

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