Docker – это программное обеспечение, которое с помощью контейнеров-образов собирает все необходимые зависимости для запуска приложений. Использование Docker контейнеров, позволяет запускать проекты на любых других машинах, где установлен Docker.
В этой статье рассмотрим каким образом можно создавать, запускать, останавливать и удалять контейнеры.
Каждый раз, когда используется команда docker run, из образа, который вы указываете, создается новый контейнер.
Создание контейнера
- Команда docker run создает новый контейнер, который в качестве основания будет использовать образ Centos. Ключ -t откроет терминал, а -i – позволит взаимодействовать с ним. Для входа в контейнер можно использовать стандартную команду bash:
В терминале появится подтверждение того, что вы находитесь внутри контейнера в качестве root-пользователя. После символа @ можно увидеть ID контейнера, в котором находитесь:
Для проверки работы можно создать файл с произвольным содержимым и вывести его:
В результате вывода должны увидеть "Hello Sweb!"
- Команда exit позволяет выйти из контейнера, после выхода, контейнер автоматически останавливается.
Проверим, используя команду docker ps, существуют ли в настоящий момент запущенные контейнеры:
Как видно — больше запущенных нет.
- Команда docker ps -a позволяет увидеть увидеть все контейнеры, в том числе и остановленные:
При создании контейнера ему присваивается ID и автоматически генерируется имя. В этом примере fe158d095b9f – это ID) контейнера, а stupefied_pasteur – имя.
Команда ps -a позволяет увидеть эту информацию, а также образ, из которого контейнер был создан (в данном случае centos 8), время контейнер был создан (около часа назад), какая команда была запущена в контейнере (/bin/bash). Также вы можете посмотреть статус контейнера (из него вышли 3 минуты назад).
- Пробуем снова запустить выполнить команду для создания контейнера:
Стоит заметить, что каждый раз вызывая стандартную команду запуска, docker создает новый контейнер и он будет иметь другой id. Если попытаемся открыть содержимое в созданном ранее файле образа, то мы увидим ошибку: cat: /tmp/sometext.txt: No such file or directory
Может сложиться впечатление, что данные пропали, но дело, не в этом.
- Выйдем из второго контейнера используя exit.
- Теперь убедимся, что 2 созданных контейнера (в том числе и первый с созданным файлом ) существуют в системе используя ps -a:
648cada43cef centos:8 "/bin/bash" 13 minutes ago Exited (127) 5 seconds ago inspiring_kare fe158d095b9f centos:8 "/bin/bash" About an hour ago Exited (0) 28 minutes ago stupefied_pasteur
Перезапуск контейнера
Для запуска ранее созданного контейнера, необходимо вызвать команду start с ключом –ai и далее указать ключ нужного контейнера или его имя. Команда будет выглядеть так:
Мы снова попали в оболочку контейнера, где был создан файл sometext.txt, можно его открыть cat /tmp/sometext.txt и мы увидим нужное содержимое.
Все изменения внутри контейнера сохраняются, даже в том случае, если контейнер был остановлен. Информация внутри контейнера будет только, если был удален контейнер.
Удаление контейнера
Удалить контейнеры можно используя команду docker rm. Команда сработает только на остановленные контейнеры. После команды нужно указать id либо имя одного или нескольких контейнеров. Например, удалим 2 созданных нами контейнера:
Если контейнеры остановлены и существуют, на выходе мы увидим
Контейнеры были удалены