Visitors have accessed this post 1495 times.

Команды Docker, которые вам точно пригодятся

6
2
1495
23 октября 2020 9:04
Автор: Rebrain Me
Docker

Visitors have accessed this post 1495 times.

Docker – удобный и популярный инструмент контейнеризации, который позволил ускорить процесс развертывания и запуска приложения и инфраструктуры для него. Этот эффект достигается за счет того, что в контейнер запаковывается образ вашего приложения, который и становится исполняемым пакетом и включает в себя все, что нужно для запуска, — начиная с кода и среды выполнения и заканчивая файлами конфигурации, библиотеками, переменными среды.

Конечно, в работе с Docker вам не обойтись без ряда команд. Остановимся на некоторых из них.

ps

Эта команда позволяет посмотреть список всех работающих контейнеров (в том числе, выводит их имена, используемые образы, порты и некоторую другую информацию).

Так как по умолчанию выводятся только запущенные контейнеры, вам может пригодиться флаг –a / —all – с его помощью можно посмотреть вообще все контейнеры.

А флаг -q / —quiet позволяет просмотреть только ID контейнеров.

pull

В Docker Hub есть многие образы уже в готовом виде, и вы можете использовать их, а не тратить время на создание и настройку своего образа. Для скачивания образа или репозитория используется команда docker pull.

run

run — команда для запуска контейнера. При помощи параметров можно определять поведение контейнера, разрешения, сетевые настройки и т.д.

Примеры флагов для этой команды:

-d — detach – используется, если нужно запустить контейнер и оставить его работать фоном. Без него приложение останавливается при закрытии консоли, логи утилиты уходят в консоль и других операций мы выполнять в это время не можем.

-p — флагом определяется port mapping, то есть, мы определяем доступ к приложению в контейнере из хостовой системы так, словно оно запущено на самой хостовой системе.

Синтаксис флага при этом:

-p [[$HOST_LISTEN_ADDRESS:]$HOST_LISTEN_PORT:]$CONTAINER_LISTEN_PORT[/$PROTOCOL]

  • HOST_LISTEN_ADDRESS — адрес, на котором пробрасывается порт на хосте. По умолчанию это — 0.0.0.0 (запросы слушаются на всех адресах).
  • HOST_LISTEN_PORT — порт, на который пробрасывается порт на хосте. Может совпадать с портом контейнера.
  • CONTAINER_LISTEN_PORT — порт, который пробрасывается на хост.
  • PROTOCOL — протокол, который пробрасываем.

build

build  — команда собирает Docker образ из Dockerfile и контекста (набора файлов, находящихся по конкретному пути или URL). Чтобы задать имя образа, используется флаг -t.

rm

rm —  команда для удаления контейнеров, которые остановлены.

Используется с флагом -force, без него Docker укажет на необходимость остановки контейнера, и только после этого можно будет удалить его.

stop

stop —  команда для остановки контейнеров. Чтобы остановить один контейнер, нужно использовать команду в формате docker stop my_container, а чтобы применить ее для всех запущенных контейнеров, используется синтаксис вида docker stop $(docker ps -a -q).

rmi

rmi  —  команда для удаления образов.

logs

logs  —  команда для просмотра логов нужного контейнера. Флаг –follow позволяет следить за логами в процессе работы приложения.

VOLUME

VOLUME — команда определяет путь, по которому нужно подключить Volume.

Используется, когда нужно сохранить выходные данные контейнера во внешнем хранилище в исходном виде. Для этого при запуске образа командой создается и подключается к контейнеру дополнительный Volume.

Синтаксис команды — VOLUME PATH[ …], где PATH — это путь в контейнере, куда нужно подключить Volume.

EXPOSE

EXPOSE — команда, регламентирующая использование портов внутри контейнера и выводящая сообщение о том, какие порты используются.

Синтаксис команды — EXPOSE PORT[/PROTOCOL][ …], где

  • PORT — порт приложения,
  • PROTOCOL — протокол (udp/tcp).

Отметим, что в одной директиве возможно указывать несколько портов.

WORKDIR

WORKDIR — команда, которой можно определить директорию, которая будет рабочей внутри контейнера. Применяется, когда копируется приложение со всеми его зависимостями, а не в виде бинарного файла, и нужна команда для его запуска. А также в случае, если для запуска приложения нужно, чтобы конфигурационный файл находился в конкретной директории.

CMD

CMD — команда, определяющая, какую команду по умолчанию требуется использовать при запуске контейнера.

Синтаксис команды может быть двух видов:

  • shell — CMD command arg —запускает команду внутри контейнера в виде /bin/sh -c ‘command arg’;
  • exec — CMD [«command», «arg»] —запускает команду command arg напрямую, не создавая дополнительно оболочку.

ENTRYPOINT

ENTRYPOINT — команда, аналогичная CMD. Определяет, что именно нужно запустить при запуске контейнера.

У этой команды также есть два варианта синтаксиса:

  • shell — ENTRYPOINT command arg —запускает команду внутри контейнера в виде /bin/sh -c ‘command arg’.
  • exec — ENTRYPOINT [«command», «arg»] —запускает команду command arg напрямую, без дополнительного создания оболочки.

Отличается от CMD тем, что если ENTRYPOINT нет, то CMD запускается при старте по умолчанию. В этот момент ее можно переопределить командой docker run IMAGE_NAME COMMAND.

Если же ENTRYPOINT есть, содержание команды CMD передается в качестве параметра в ENTRYPOINT (но только при использовании синтаксиса с exec).

От редакции

Если вам интересно посещать открытые онлайн-мероприятия по DevOps, Kubernetes, Docker, GitlabCI и др. и задавать вопросы в режиме реального времени, подключайтесь к каналу DevOps by REBRAIN. *Анонсы мероприятий каждую неделю

Практикумы для специалистов по инфраструктуре и разработчиков — https://rebrainme.com.

Наш Youtube-канал — https://www.youtube.com/channel/UC6uIx64IFKMVmj12gKtSgBQ.

Агентство Fevlake, проектируем и поддерживаем IT-инфраструктуры с 2012 года — https://fevlake.com.

Комментарии (3)
Введено символов из возможных
Не отвечать
Serega Popov

Начиная с VOLUME и дальше — это команды для написания Dockerfile, а не команды консоли Docker.
Еще полезная команда консоли: create — создает контейнер, но не запускает его

encore-show

Нигде не увидел команд которые реально помогут
К примеру таких как
# docker stop $(docker ps -a -q) остановить все контейнеры
# docker rm $(docker ps -a -q) удалить все контейнеры

И т.п. Просто man docker покажет куда больше команд)

Вам также может понравится

Как получить список заданий Cron в Linux
array(1) { [0]=> object(WP_Term)#11142 (16) { ["term_id"]=> int(6) ["name"]=> string(5) "Linux" ["slug"]=> string(5) "linux" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(6) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(23) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(6) ["category_count"]=> int(23) ["category_description"]=> string(0) "" ["cat_name"]=> string(5) "Linux" ["category_nicename"]=> string(5) "linux" ["category_parent"]=> int(0) } } Linux

Перевод статьи - https://linoxide.com/linux-how-to/how-to-list-cron-jobs-in-linux/

Для того чтобы Linux автоматически выполнял задачи по расписанию, которые в противном случае вам пришлось бы выполнять самостоятельно, например, запуск скриптов и выполнение определенных команд, мы используем инструмент под названием cron. В системах Linux...

2
0
25 сентября 2020
Docker — установка, настройка и первые шаги в системе
array(1) { [0]=> object(WP_Term)#11163 (16) { ["term_id"]=> int(8) ["name"]=> string(6) "Docker" ["slug"]=> string(6) "docker" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(8) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(8) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(8) ["category_count"]=> int(8) ["category_description"]=> string(0) "" ["cat_name"]=> string(6) "Docker" ["category_nicename"]=> string(6) "docker" ["category_parent"]=> int(0) } } Docker

Автор - Юрий Власов

Docker – де-факто стандартный движок контейнеризации, который повсеместно используется для запуска приложения как в окружениях для разработки, так и в публичных\высоконагруженных средах. Подробнее о терминологии можно узнать здесь.

В этой статье я расскажу, как поставить и запустить Docker локально и начать знакомство с...

6
0
21 августа 2020
Команда chmod — Linux
array(1) { [0]=> object(WP_Term)#11140 (16) { ["term_id"]=> int(6) ["name"]=> string(5) "Linux" ["slug"]=> string(5) "linux" ["term_group"]=> int(0) ["term_taxonomy_id"]=> int(6) ["taxonomy"]=> string(8) "category" ["description"]=> string(0) "" ["parent"]=> int(0) ["count"]=> int(23) ["filter"]=> string(3) "raw" ["cat_ID"]=> int(6) ["category_count"]=> int(23) ["category_description"]=> string(0) "" ["cat_name"]=> string(5) "Linux" ["category_nicename"]=> string(5) "linux" ["category_parent"]=> int(0) } } Linux

Chmod устанавливает права на чтение, запись и выполнение и является одной из наиболее важных команд безопасности в операционных системах на базе Linux.

У каждого объекта в вашей системе Linux есть режим выдачи прав, который описывает, какие действия пользователь может выполнять в системе. Существует три типа разрешений: на чтение (chmod r),...

0
0
27 мая 2020