воскресенье, 1 декабря 2019 г.

Шпаргалка Docker

Создание образа

·        docker pull ОБРАЗ - загружает образ из Docker Hub (аналог GitHub для Docker)

·        docker build ПУТЬ | URL - создает образ с помощью Dockerfile
Параметры:

o   -t | --tag="" - помечает созданный образ переданным названием (и, тэгом, если он будет передан)

o   --rm - Удаляет промежуточные контейнеры после успешной сборки (по умолчанию == true)

Управление образами

·        docker rmi - Удаляет образ, образ не может быть удален, если существуют контейнеры (даже незапущенные), которые основаны
на данном образе
Параметры:

o   -f - позволяет удалить образ даже если на нём основаны контейнеры

·        docker images - Отображает список всех существующих образов
Параметры:

o   -a | --all - отображает все образы (по умолчанию не отображает промежуточные контейнеры)

o   -q - отображает только id образов, вместо таблицы

Запуск и остановка контейнеров

·        docker run ОБРАЗ [КОМАНДА + АРГУМЕНТЫ] - Запускает выбранный образ в новом контейнере
Параметры:

o   -d | --detach - запускает контейнер в фоновом режиме и выводит только id свежесозданного контейнера. (по умолчанию == false)

o   -i | --interactive - запускает контейнер в интерактивном режиме (оставляет STDIN открытым, даже если контейнер запущен в неприкрепленном режиме)

o   -t | --tty - запускает псевдотерминал, часто используется с -i

o   -p | --publish=[] - пробрасывает порты контейнера в хост. Формат: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort

o   -e | --env=[] - пробрасывает переменные окружения внутрь контейнера.

o   -v | --volume=[] - пробрасывает директорию файловой системы внутрь контейнера

·        docker stop КОНТЕЙНЕР - останавливает контейнер, передавая внутрь SIGTERM, а по истечении таймаута - SIGKILL

·        docker start КОНТЕЙНЕР - запускает остановленный контейнер.
Параметры:

o   -i | --interactive - аналогично docker run -i

·        docker restart КОНТЕЙНЕР - Перезапускает выбранный контейнер с помощью docker stop и docker start

·        docker kill КОНТЕЙНЕР - Убивает контейнер, передавая внутрь SIGKILL

Управление контейнерами

·        docker port КОНТЕЙНЕР - отображает маппинг портов между хостом и контейнером

·        docker ps - отображает список запущенных контейнеров
Параметры:

o   -a | --all=(true|false) - отображать ли все контейнеры. По умолчанию == false, т.е. отображаются только запущенные контейнеры

o   -q - отображает только ID контейнеров вместо таблицы

·        docker rm КОНТЕЙНЕР - удаляет контейнер. По умолчанию можно удалить только запущенный контейнер.
Параметры:

o   -f | --force=(true|false) - позволяет удалить запущенный контейнер. Используется передача SIGKILL внутрь.

·        docker diff - отображает изменения относительно образа.

Синтаксис Dockerfile

Dockerfile служит скриптом сборки для команды docker build. Перед началом сборки docker передает сборщику всё содержимое папки с Dockerfile'ом,
поэтому располагать его в корневой директории системы будет не лучшей идеей.

Формат файла:

# Комментарий
ИНСТРУКЦИЯ аргументы

Первая инструкция обязательно должна быть инструкцией FROM.

Инструкции:

·        FROM ОБРАЗ | FROM ОБРАЗ:ТЭГ - Задает базовый образ для последующих инструкций. Может встречаться несколько раз в одном Dockerfile,
если необходимо собрать несколько образов за раз.

·        MAINTAINER имя - Позволяет задать поле Author сгенерированного образа

·        RUN команда | RUN ["исполняемый файл", "параметр1", "параметр2", ..] - Запускает команду на основе текущего образа и фиксирует изменения в новом образе. Новый образ будет использован для исполнения последующих инструкций. Первый синтаксис подразумевает запуск команд в стандартной оболочке (bin\sh -c)

·        CMD ["исполняемый файл", "параметр1", "параметр2"] | CMD ["параметр1", "параметр2"] | CMD команда параметр1 параметр2 - Предоставляет значения по умолчанию для запуска контейнера. Эти значения могут как включать исполняемый файл (варианты 1, 3), так и не включать его (вариант 2). В последнем случае запускаемая команда
должна быть задана с помощью инструкции 
ENTRYPOINT.

·        EXPOSE порт <порт...> - Информирует Docker, что контейнер будет прослушивать указанные порты во время исполнения. Docker может использовать эту информацию, чтобы соединять контейнеры между собой используя связи. EXPOSE сам по себе не делает порт доступным из хостовой системы. Для того, чтобы открыть порты в хостовую систему следует использовать флаг -p.

·        ENV ключ значение - Позволяет задавать переменные окружения. Эти переменные будут использованы при запуске контейнера из собранного образа. Могут быть просмотрены с помощью команды docker inspect, а также переопределены с помощью флага --env команды docker run.

·        ADD ОТКУДА <ОТКУДА...> КУДА - Используется для добавления новых файлов, директорий или ссылок на удалённые файлы в файловую систему контейнера. Несколько ОТКУДА может быть передано одновременно, но в этом случае все адреса должны быть относительны для директории, из которой происходит сборка. Каждый вхождение ОТКУДА может содержатьодин или несколько символов подстановки, которые будут разрешены с использование функции языка Go filepath.Match. КУДА должен быть абсолютным путем внутри контейнера.

·        ENTRYPOINT ["исполняемый файл", "параметр1", "параметр2"] | ENTRYPOINT команда параметр1 параметр2 - позволяет сконфигурировать контейнер так, чтобы он запускался как исполняемый файл. В отличии от команды CMD значение не будет переопределено аргументами, переданными в команду docker run. Таким образом, аргументы из команды docker run будут переданы внутрь контейнера, т.е. docker run ОБРАЗ -d передаст -d исполняемому файлу.

·        VOLUME [ПУТЬ] - создает точку монтирования с указанным именем и помечает её как содержащую подмонтированные разделы из хостовой системы или других контейнеров. Значение может быть задано как массив JSON, например, VOLUME ["/var/log/"], так и как обычной строкой с одним или несколькими аргументами, например VOLUME /var/log или VOLUME /var/log /var/db

·        USER имя - позволяет задавать имя пользователя или UID, который будет использован для запуска образа, а так же для любой из инструкций RUN

·        WORKDIR ПУТЬ - задает рабочую директорию для команд RUNCMD и ENTRYPOINT. Инструкция может быть использована несколько раз. Если ПУТЬ относителен, то он будет относительным для ПУТИ, заданным предыдущей инструкцией WORKDIR.

-----------------------------
Образ - image
Контейнер - container

 


Комментариев нет:

Отправить комментарий