docker pull ОБРАЗ
- загружает образ из Docker Hub (аналог GitHub для Docker)
docker build ПУТЬ | URL
- создает образ с помощью Dockerfile
Параметры:
-t
| --tag=""
- помечает созданный образ переданным названием (и, тэгом, если он будет передан)--rm
- Удаляет промежуточные контейнеры после успешной сборки (по умолчанию == true)docker rmi
- Удаляет образ, образ не может быть удален, если существуют контейнеры (даже незапущенные), которые основаны
на данном образе
Параметры:
-f
- позволяет удалить образ даже если на нём основаны контейнерыdocker images
- Отображает список всех существующих образов
Параметры:
-a
| --all
- отображает все образы (по умолчанию не отображает промежуточные контейнеры)-q
- отображает только id образов, вместо таблицыdocker run ОБРАЗ [КОМАНДА + АРГУМЕНТЫ]
- Запускает выбранный образ в новом контейнере
Параметры:
-d
| --detach
- запускает контейнер в фоновом режиме и выводит только id свежесозданного контейнера. (по умолчанию == false
)-i
| --interactive
- запускает контейнер в интерактивном режиме (оставляет STDIN открытым, даже если контейнер запущен в неприкрепленном режиме)-t
| --tty
- запускает псевдотерминал, часто используется с -i
-p
| --publish=[]
- пробрасывает порты контейнера в хост. Формат: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort | containerPort-e
| --env=[]
- пробрасывает переменные окружения внутрь контейнера.-v
| --volume=[]
- пробрасывает директорию файловой системы внутрь контейнераdocker stop КОНТЕЙНЕР
- останавливает контейнер, передавая внутрь SIGTERM, а по истечении таймаута - SIGKILL
docker start КОНТЕЙНЕР
- запускает остановленный контейнер.-i
| --interactive
- аналогично docker run -idocker restart КОНТЕЙНЕР
- Перезапускает выбранный контейнер с помощью docker stop и docker startdocker kill КОНТЕЙНЕР
- Убивает контейнер, передавая внутрь SIGKILLdocker port КОНТЕЙНЕР
- отображает маппинг портов между хостом и контейнеромdocker ps
- отображает список запущенных контейнеров-a
| --all=(true|false)
- отображать ли все контейнеры. По умолчанию == false
, т.е. отображаются только запущенные контейнеры-q
- отображает только ID контейнеров вместо таблицыdocker rm КОНТЕЙНЕР
- удаляет контейнер. По умолчанию можно удалить только запущенный контейнер.-f
| --force=(true|false)
- позволяет удалить запущенный контейнер. Используется передача SIGKILL внутрь.docker diff
- отображает изменения относительно образа.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 ПУТЬ
- задает рабочую директорию для команд RUN
, CMD
и ENTRYPOINT
. Инструкция может быть использована несколько раз. Если ПУТЬ относителен, то он будет относительным для ПУТИ, заданным предыдущей инструкцией WORKDIR
.
-----------------------------
Образ - image
Контейнер - container