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Другие расширения