Просто о Docker: практическое руководство для абсолютных новичков Часть 3

Все разделы руководства по Docker для новичков:

Основные команды Docker

Пришло время испачкать руки и детальнее изучить команды Docker.

docker create

Первая команда, которую мы рассмотрим, это команда docker create. Эта команда позволяет нам создать новый контейнер. Синтаксис этой команды такой:

docker create [options] IMAGE [commands] [arguments]

Обратите внимание, что параметры, заключенные в квадратные скобки, не является обязательным. Это относится ко всем командам, которые вы увидите в этом руководстве.

Пример использования команды:

$ docker create fedora

В приведенном примере команда docker create создаст новый контейнер, используя последний образ Fedora.

Перед созданием контейнера Docker проверит, доступен ли последний официальный образ Fedora на Docker Host или нет. Если образ недоступен на Docker Host, он будет загружен из Docker Hub перед созданием контейнера. Если же образ Fedora уже присутствует на Docker Host, он будет использовать этот образ и создаст контейнер.

Как только контейнер был создан успешно, Docker возвращает идентификатор контейнера.

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

Теперь давайте обратимся к другому примеру команды docker create, в которой есть опции и команды, которые передаются ему.

$ docker create -t -i ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
f476d66f5408: Pull complete
...
Digest: 
...
Status: Downloaded newer image for ubuntu:latest
958dc2e8f7029a0767d0d2895938f6b4f376b9e4568c44e64c29f55ba4eb30fb

В приведенном примере команда docker create создает контейнер с использованием образа Ubuntu. Действия идут аналогично примеру выше.

Опции -t и -i говорят Docker выделить терминал для контейнера, чтобы пользователь мог взаимодействовать с контейнером. Он также указывает Docker выполнять команду bash при каждом запуске контейнера.

docker ps

Следующая команда, которую мы рассмотрим, это команда docker ps. Команда docker ps позволяет нам просматривать все контейнеры, работающие на Docker Host.

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

Эта команда отображает только контейнеры, которые в данный момент работают на Docker Host.

Если вы хотите просмотреть все контейнеры, созданные на этом хосте Docker, независимо от их текущего состояния (заупщен или нет), вам нужно включить параметр -a.

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                     PORTS               NAMES
958dc2e8f702        ubuntu              "bash"              About a minute ago   Created                                        hardcore_elbakyan
7d0182f24c60        hello-world         "/hello"            4 minutes ago        Exited (0) 4 minutes ago                       reverent_yonath

В данном выводе мы видим:

CONTAINER ID — уникальная строка, состоящая из буквенно-цифровых символов, идентификатор контейнера, о котором речь шла выше.

IMAGE — имя образа Docker, использованного для создания этого контейнера.

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

CREATED — показывает время, прошедшее с момента создания этого контейнера.

STATUS — Показывает текущее состояние контейнера, а также время нахождения его в текущем состоянии.

PORTS — отображает любые сопоставления портов, определенные для контейнера.

NAMES — кроме идентификатора каждому контейнеру также присваивается уникальное имя. Мы можем ссылаться на контейнер, используя идентификатор или это имя. Docker автоматически присваивает уникальное бессмысленное имя каждому контейнеру, который он создает. Если вы хотите указать свое собственное имя для контейнера, то вы можете сделать это, включив опцию —name (двойной дефис name) в команду docker create или docker run (рассмотрим позже).

Я надеюсь, что это даст вам лучшее понимание вывода команды docker ps.

docker start

Следующая команда, которую мы рассмотрим, это команда docker run. Эта команда запускает любой остановленный контейнер.

Синтаксис этой команды такой, как показано ниже:

docker start [options] CONTAINER ID/NAME [CONTAINER ID/NAME…]

Мы можем запустить контейнер либо указав первые несколько уникальных символов его идентификатора контейнера, либо указав его имя. Некоторые из примеров использования этой команды показаны ниже:

$ docker start 958dc2

В приведенном выше примере Docker запускает контейнер, начиная с идентификатора контейнера 958dc2.

$ docker start hardcore_elbakyan

Принимая во внимание, что в этом примере Docker запускает контейнер с именем hardcore_elbakyan.

docker stop

Следующая команда в списке — команда docker stop. Эта команда останавливает любой работающий контейнер. Синтаксис этой команды такой, как показано ниже:

docker stop [options] CONTAINER ID/NAME [CONTAINER ID/NAME…]

Команда похожа на команду запуска Docker. Мы можем остановить контейнер, указав первые несколько уникальных символов его идентификатора контейнера или указав его имя. Некоторые из примеров использования этой команды показаны ниже:

# Остановка по ID
$ docker stop 958dc2
# Остановка по имени контейнера
$ docker stop hardcore_elbakyan

docker restart

Следующая команда, которую мы рассмотрим, это команда перезапуска Docker. Эта команда перезапускает любой работающий контейнер. Синтаксис этой команды следующий:

 docker restart [options] CONTAINER ID/NAME [CONTAINER ID/NAME…]

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

# Перезапуск по ID
$ docker restart 958dc2
# Перезапуск по имени контейнера
$ docker restart hardcore_elbakyan

docker run

Эта команда сначала создает контейнер, а затем запускает контейнер. Короче говоря, эта команда является комбинацией команды docker create и команды docker start. Синтаксис этой команды такой, как показано ниже:

docker run [options] IMAGE [commands] [arguments]

Команда имеет синтаксис, аналогичный синтаксису команды docker create. Некоторые из примеров использования этой команды показаны ниже:

$ docker run ubuntu

В приведенном выше примере Docker создаст контейнер, используя последний образ Ubuntu, а затем немедленно запустит контейнер.

Если мы выполним указанную выше команду, она запустит контейнер и немедленно остановит его и у нас не будет возможности взаимодействовать с контейнером.

Если мы хотим взаимодействовать с контейнером, то нам нужно указать параметры: -it (дефис, за которым следуют i и t), чтобы команда docker run представила нам терминал, с помощью которого мы могли бы взаимодействовать с контейнером, введя соответствующие команды. Ниже приведен пример.

$ docker run -it ubuntu
[email protected]:/#

Для того, чтобы выйти из контейнера, вам нужно набрать команду exit в терминале.

docker rm

Следующая команда docker rm удаляет контейнер. Синтаксис этой команды такой, как показано ниже:

docker rm [options] CONTAINER ID/NAME [CONTAINER ID/NAME...]

Пример использования:

$ docker rm 08adab reverent_yonath

В приведенном выше примере мы даем указание Docker удалить 2 контейнера в одной команде. Первый контейнер, подлежащий удалению, указывается с использованием его идентификатора, а второй контейнер, подлежащий удалению, указывается с использованием его имени.

Обратите внимание: контейнеры должны быть в остановленном состоянии, чтобы их можно было удалить.

docker images

Cледующая команда в списке — docker images. Эта команда выводит список всех образов Docker, которые присутствуют на вашем Docker Host.

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              d131e0fa2585        4 days ago          102MB
hello-world         latest              fce289e99eb9        4 months ago        1.84kB

Давайте расшифруем вывод команды docker images.

REPOSITORY — уникальное имя Docker Image.

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

IMAGE ID — уникальный идентификатор образа, состоящий из буквенно-цифровых символов.

CREATED — показывает время, прошедшее с момента создания этого образа.

SIZE — отображает размер образа.

docker rmi

Следующая команда в списке — docker rmi. Команда docker rmi позволяет нам удалить образ(ы) с Docker Host. Синтаксис этой команды следующий:

 docker rmi [options] IMAGE NAME/ID [IMAGE NAME/ID...]

Некоторые примеры использования этой команды:

$ docker rmi hello-world
Untagged: hello-world:latest
Untagged: 
...
Deleted: 
...

Если хотим удалить сразу несколько образов, то перечисляем их через пробел:

$ docker rmi fedora ubuntu

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

# Удаляем образ по ID
$ docker rmi 94e81
# Удаляем образ по тэгу
$ docker rmi ubuntu:latest

Это были некоторые из основных команд Docker. Существуют и другие, которые вы можете изучить в руководстве.

Резюме

В последнее время контейнеризация привлекла внимание, которого она заслуживает, хотя она существует уже достаточно давно. Некоторые из ведущих технологических компаний, такие как Google, Amazon Web Services (AWS), Intel, Tesla и Juniper Networks, имеют свои собственные версии контейнерных движков. Они в значительной степени полагаются на них при создании, запуске, управлении и распространении своих приложений.

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

Вкладывая свое время и деньги в изучение Docker, вы инвестируете в свои навыки как специалиста DevOps.

Читайте также:

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.