fbpx
linux
44

Команды Docker, без которых не обойдётся ни один DevOPS. Часть 1

5
(2)

Это руководство, введёт вас в команды Docker, использование которых просто обязательно для всёх, кто только начинает с ним работу!
Давайте познакомимся со списком полезных команд и узнаем как ими пользоваться!


Оглавление:

  1. Введение
  2. Поиск информации о версии и системе Docker
  3. Поиск и загрузка образов Docker
  4. Экспериментируем с образами Docker
  5. Запускаем контейнер Docker
  6. Смотрим список контейнеров Docker
  7. Запуск, остановка, перезапуск и уничтожение контейнеров

Docker

Введение

Docker - это развивающаяся система, разработчики которой активно работают над улучшением её производительности и вариантов использования. Поэтому команды постоянно меняются. Команды Docker часто устаревают и заменяются новыми или более эффективными. Вы можете использовать опцию help для проверки последних доступных команд в вашей установке Docker:

$ docker --help

Чтобы проверить опции для конкретной команды, вы можете использовать флаг help для этой команды. Например, чтобы проверить опции команды docker run, вы можете использовать следующее:

$ docker run --help

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

На данный момент существует 13 команд управления и 41 общая команда. Вот основные команды Docker, которые мы будем использовать в наших статьях:

  • docker attach - Присоединяет локальный поток ввода/вывода/ошибок к запущенному контейнеру.
  • docker commit - Создает новый образ из текущего измененного состояния контейнера.
  • docker exec - Выполняет команду в активном или запущенном контейнере.
  • docker history - Отображает историю образа.
  • docker info - Показывает общесистемную информацию.
  • docker inspect - Поиск информации системного уровня о контейнерах и образах docker.
  • docker login - Вход в локальный реестр или Docker Hub.
  • docker pull - Извлечение образа или репозитория из локального реестра или Docker Hub.
  • docker ps - Перечисляет различные свойства контейнеров.
  • docker restart - Остановка и запуск контейнера.
  • docker rm - Удалить контейнеры.
  • docker rmi - Удаление образов.
  • docker run - Выполнение команды в изолированном контейнере.
  • docker search - Поиск образов в Docker Hub.
  • docker start - Запускает уже остановленные контейнеры.
  • docker stop - Останавливает запущенные контейнеры.
  • docker version - Предоставляет информацию о версии docker.
    Более подробное описание можно найти здесь и здесь(на русском).

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

Примечание: Для частичных информационных дампов( примеров выполнения команд) будем использовать три точки (...).

Некоторые примеры выполнения кода проиллюстрированы в среде PowerShell(Windows), однако команды по умолчанию идут вместе с $ - приглашением командной строки( ожидание ввода) в UNIX системах. Для выполнения в среде PowerShell копировать $ не стоит. Прочий синтаксис сохраняется.


Поиск информации о версии и системе Docker

Работаете ли вы на своей машине или работаете в облаке, вам часто потребуется проверить версию Docker и информацию о системе Docker. Вы можете узнать версию Docker с помощью команды:

$ docker version

Еще одна важная команда - docker info:

$ docker info

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


Поиск и загрузка образов Docker

Вы можете искать уже доступные образы на Docker Hub с помощью команды docker search.

$ docker search ubuntu

Приведенный выше search ubuntu показывает доступные образы и их описания, рейтинг(stars), официальные статусы и автоматические статусы. Рейтинг, официальные и автоматизированные статусы - это полезные способы определить репутацию образа.

Давайте загрузим самый рейтинговый" образ ubuntu. Вы можете использовать команду docker pull:


Экспериментируем с образами Docker

Вы можете использовать команду docker info, чтобы узнать количество имеющихся у вас образов:

$ docker info

Client:
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Build with BuildKit (Docker Inc., v0.6.3)
  compose: Docker Compose (Docker Inc., v2.0.0)
  scan: Docker Scan (Docker Inc., v0.8.0)

Server:
 Containers: 0
  Running: 0
  Paused: 0
  Stopped: 0
 Images: 1
 Server Version: 20.10.8
 Storage Driver: overlay2

 ...

Но команда docker images подробно перечислит имеющиеся у вас образы:

$ docker images

Предположим, вы решили загрузить образ NGINX.(оф.сайт) Вы можете просто выполнить еще одну команду docker pull:

$ docker pull nginx

Теперь, если вы проверите свои образы Docker, вы увидите что-то вроде этого:

$ docker images

REPOSITORY   TAG       IMAGE ID       CREATED      SIZE
ubuntu       latest    597ce1600cf4   4 days ago   72.8MB
nginx        latest    f8f4ffc8092c   7 days ago   133MB

Вы можете узнать больше об этих образах здесь:

Вы можете использовать эти страницы для поиска конкретной версии образа. На странице Ubuntu вы заметите, что последняя версия Ubuntu - 18.04. Если вы ищете версию Ubuntu 16.04, вы можете использовать тег 16.04, чтобы загрузить именно эту версию:

$ docker pull ubuntu:16.04

После этого на вашей машине будет две версии образа Ubuntu:

Примечание: Вам не нужно регистрироваться в Docker Hub для получения образов. Но если вы хотите отправлять образы в Docker Hub, вам нужно зарегистрироваться, а затем войти в систему с помощью команды docker login:

$ docker login --username=yourhubusername --email=youremail@post.com


Запускаем контейнер Docker для образов

Предположим, вы хотите запустить сервер NGINX на docker. Выполните следующую команду:

$ docker run -p 8080:80 nginx

Вы использовали команду run для создания контейнера NGINX из образа nginx, который вы ранее извлекли из Docker Hub. Параметр '-p 8080:80' указывает Docker на сопоставление порта 8080 вашего локального хоста с портом 80 контейнера Docker. Вы должны иметь доступ к вашему серверу NGINX с сайта http://localhost:8080.

Контейнер NGINX подключен к вашей командной строке. Поэтому, если вы выйдете из командной строки, контейнер будет остановлен. Вы можете запустить контейнер NGINX с опцией detach ('-d'), чтобы он продолжал работать, даже если вы выйдете из командной строки.

$ docker run -p 8080:80 -d nginx

Приведенная выше команда запустит контейнер в обособленном режиме и вернет обратно в командную строку.


Смотрим список контейнеров Docker с помощью команды docker ps

Команда docker ps позволяет просмотреть все запущенные контейнеры.

Здесь показаны различные свойства контейнеров. Видно, что он был создан из образа nginx, также показана информация о пробросе портов. Свойства CONTAINER ID и NAMES требуют особого упоминания. Вы можете использовать эти свойства для уникальной идентификации контейнеров. Оба эти свойства генерируются автоматически. Но вы также можете присвоить имя контейнеру в процессе его создания. Давайте создадим контейнер NGINX с именем "my_nginx":

$ docker run --name my_nginx -p 8888:80 -d nginx

Давайте снова посмотрим список контейнеров Docker:


Обратите внимание, что новый контейнер имеет имя "my_nginx". Когда вы имеете дело с большим количеством контейнеров, вы можете использовать соглашение об именовании. Это поможет вам лучше организовать контейнеры.


Команда docker ps показывает только запущенные контейнеры. Если вы используете команду docker info для вышеописанного случая:

$ docker info
Server:
 Containers: 3
  Running: 2
  Paused: 0
  Stopped: 1
 Images: 3
 Server Version: 20.10.8
 Storage Driver: overlay2
 ...

Видно, что запущено 2 контейнера. Если у вас есть приостановленный или остановленный контейнер, вы не увидите эти контейнеры только с помощью команды docker ps. Вам придется использовать опцию all ('-a'):

$ docker ps -a


Запуск, остановка, перезапуск и уничтожение контейнеров

Вы можете запускать и останавливать контейнеры с помощью следующих команд Docker.

Предположим, вы хотите остановить контейнер 'my_nginx'. Вы можете использовать либо идентификатор контейнера, либо его имя. В данном случае будем использовать имя:

$ docker stop my_nginx

my_nginx

Давайте посмотрим список контейнеров Docker:

$ docker ps
$ docker ps -a

Если вы запустите docker ps без опции -a, он покажет только запущенные контейнеры. Во втором случае видно, что контейнер 'my_nginx' находится в статусе exited.

Давайте запустим контейнер с docker start:

$ docker start my_nginx

my_nginx

Если вы проверите список контейнеров Docker:

$ docker ps

Вы можете видеть, что STATUS показывает, что контейнер 'my_nginx' снова работает.

Если вы хотите остановить и запустить контейнер из-за какой-то проблемы, вы можете использовать команду restart. Это быстрее, чем останавливать и запускать контейнеры по отдельности:

$ docker restart my_nginx

Вы можете уничтожить(далее kill(англ.) - убить) контейнер docker, как процесс. Давайте "убьем" контейнер 'my_nginx':

$ docker kill my_nginx

Снова глянем список контейнеров Docker:

$ docker ps -a

Контейнер my_nginx не работает. Также в информации видно, что у вас есть запущенный контейнер и остановленный контейнер:

$ docker info
Server:
 Containers: 3
  Running: 1
  Paused: 0
  Stopped: 2
 Images: 3
 Server Version: 20.10.8
 Storage Driver: overlay2
...

Используйте команды start или restart для запуска "убитого" контейнера.

Что ж. В этой части статьи мы с вами познакомились со списком основных команд Docker. Научились находить и "заливать" себе образы, просматривать запущенные контейнеры и вообще все имеющиеся, а так же запускать и останавливать, завершать контейнеры в Docker.

Следующая часть статьи обещает быть не менее интересной! Найти её можно здесь.


Изучи Docker на нашем курсе по Devops
Попробовать бесплатно

Оригинал статьи на английском можно найти здесь.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 2

Оценок пока нет. Поставьте оценку первым.

Сожалеем, что вы поставили низкую оценку!

Позвольте нам стать лучше!

Расскажите, как нам стать лучше?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Читают сейчас
Меню

Попробуй курс Linux и DevOPS