Docker Hello World

Docker позволяет запускать приложения внутри контейнеров, используяdocker runкоманду для запуска приложения внутри контейнера.

Вывод Hello world

example@example:~$ docker run ubuntu:15.10 /bin/echo "Hello world"
Hello world

Анализ каждого параметра:

  • docker:бинарный исполняемый файл Docker.

  • run:В сочетании с предшествующим docker для запуска контейнера.

  • ubuntu:15.10Указывает образ для запуска. Docker сначала проверяет, существует ли образ на локальном хосте. Если он не существует, Docker загрузит публичный образ из репозитория образов Docker Hub.

  • /bin/echo "Hello world": Команда, выполняемая внутри запущенного контейнера

Полный смысл приведённой выше команды можно объяснить так: Docker создаёт новый контейнер из образа ubuntu15.10, затем выполняет bin/echo "Hello world" внутри контейнера и затем выводит результат.


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

Мы используем два параметра Docker -i -t, чтобы контейнер, запущенный Docker, получилвозможность диалога:

example@example:~$ docker run -i -t ubuntu:15.10 /bin/bash
root@0123ce188bd8:/#

Анализ каждого параметра:

  • -t:Задаёт псевдотерминал или терминал в новом контейнере.

  • -i:Позволяет взаимодействовать со стандартным вводом (STDIN) в контейнере.

Обратите внимание на вторую строкуroot@0123ce1888:/#На этом этапе мы вошли в контейнер с системой ubuntu15.10.

Мы пытаемся выполнить команды в контейнере cat /proc/versionиlsЧтобы просмотреть информацию о версии текущей системы и список файлов текущего каталога соответственно.

root@0123ce188bd8:/#  cat /proc/version
Linux version 4.4.0-151-generic (buildd@lgw01-amd64-043) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #178-Ubuntu SMP Tue Jun 11 08:30:22 UTC 2019
root@0123ce188bd8:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@0123ce188bd8:/# 

Мы можем выйти из контейнера, выполнив команду exit или использовав CTRL+D.

root@0123ce188bd8:/#  exit
exit
root@example:~# 

Обратите внимание на третью строкуroot@example:~#Указывает на то, что мы вышли из текущего контейнера и вернулись на текущий хост.


Запуск контейнера (фоновый режим)

Используйте следующую команду, чтобы создать контейнер, который работает как процесс

example@example:~$ docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

В выводе мы не увидели ожидаемое "hello world", а вместо этого — длинную строку символов.

2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63

Эта длинная строка называется ID контейнера, который уникален для каждого контейнера. Мы можем использовать ID контейнера, чтобы посмотреть, что произошло с соответствующим контейнером.

Сначала нам нужно убедиться, что контейнер запущен. Это можно сделать с помощьюdocker psдля просмотра:

example@example:~$ docker ps
CONTAINER ID        IMAGE                  COMMAND              ...  
5917eac21c36        ubuntu:15.10           "/bin/sh -c 'while t…"    ...

Введение в детали вывода:

CONTAINER ID:ID контейнера.

IMAGE:Используемый образ.

COMMAND:Команда, выполняемая при запуске контейнера.

CREATED:Время создания контейнера.

STATUS:Статус контейнера.

Существует 7 состояний:

  • created
  • перезапускается
  • работает или Up (работает)
  • удаляется (мигрирует)
  • paused
  • завершен
  • мертв

PORTS:Информация о портах контейнера и используемом типе соединения (tcp\udp).

NAMES:Автоматически назначенное имя контейнера.

На хост-машине используйтеdocker logsкоманду для просмотра стандартного вывода внутри контейнера:

example@example:~$ docker logs 2b1b7a428627

example@example:~$ docker logs amazing_cori


Остановка контейнеров

Мы используемdocker stopкоманду для остановки контейнера:

С помощьюdocker psпроверьте, что контейнер перестал работать:

example@example:~$ docker ps

Вы можете видеть, что контейнер исчез.

Вы также можете использовать следующую команду для остановки:

example@example:~$ docker stop amazing_cori
Другие расширения