- Как установить Docker и запустить Docker контейнеры в Ubuntu
- Установка Docker CE (Community Edition) в Ubuntu
- Изучите основные команды Docker в Ubuntu
- Загрузите образ Docker в Ubuntu
- Запустите Docker-контейнер в Ubuntu
- Docker посмотреть запущенные контейнеры, запустить или остановить контейнеры
- Список запущенных Docker контейнеров
- Как запустить Docker контейнер
- Как остановить Docker контейнер
- Заключение
- 10 команд для Docker, без которых вам не обойтись
- Запуск контейнера Docker на Linux
- Процесс установки Docker
- Работа с командой Docker без прав суперпользователя
- Как пользоваться командами Docker?
- Как работать с образами Docker
- Запуск контейнера Docker
- Команды для управления контейнерами
- Как сохранить изменения в новый образ?
- Отправка контейнеров в реестр
- Автозагрузка контейнеров
Как установить Docker и запустить Docker контейнеры в Ubuntu
Docker – это общедоступная и популярная технология виртуализации на уровне операционной системы (обычно называемая «контейнеризацией»), которая в основном работает на Linux и Windows.
Docker упрощает создание, развертывание и запуск приложений с использованием контейнеров.
С помощью контейнеров разработчики (и системные администраторы) могут упаковать приложение со всем необходимым для его запуска – кодом, средой выполнения, библиотеками, переменными среды и файлами конфигурации и отправить все это в виде одного пакета.
Да, это так здорово!
В этой статье мы покажем вам, как установить Docker CE (Community Edition), создать и запустить контейнеры Docker в дистрибутиве Ubuntu.
Установка Docker CE (Community Edition) в Ubuntu
1. Чтобы установить Docker CE, сначала необходимо удалить более старые версии Docker, называемые docker, docker.io или docker-engine, из системы с помощью следующей команды:
2. Затем вам нужно настроить репозиторий Docker для установки и обновления Docker из репозитория с помощью следующих команд.
3. Обновите индекс пакетов через apt и установите последнюю версию Docker CE, используя следующие команды.
4. После успешной установки пакета Docker CE служба должна быть автоматически запущена и автоматически включена на запуск при загрузке системы.
Вы можете проверить его состояние с помощью следующей команды.
5. Наконец, убедитесь, что Docker CE установлен правильно, запустив образ hello-world.
Изучите основные команды Docker в Ubuntu
6. Чтобы получить информацию о Docker, выполните следующую команду.
7. Чтобы получить информацию о версии Docker, выполните следующую команду.
8. Чтобы получить список всех доступных команд Docker, запустите Docker на своем терминале.
Загрузите образ Docker в Ubuntu
9. Для запуска контейнера Docker сначала необходимо загрузить образ из Docker Hub – предоставляет бесплатные образа из его репозиториев.
Например, чтобы загрузить образ Docker с именем CentOS 7, введите следующую команду.
10. После того, как вы определили, какой образ вы хотите запустить в соответствии с вашими требованиями, загрузите его локально, выполнив следующую команду (в этом случае загружается и используется образ CentOS).
11. Чтобы просмотреть список всех доступных образов Docker на вашем хосте, выполните следующую команду.
12. Если вам больше не нужен образ Docker, и вы можете удалить его, используя следующую команду.
Запустите Docker-контейнер в Ubuntu
13. Чтобы создать и запустить контейнер Docker, сначала необходимо запустить команду в загруженном образе CentOS, поэтому основной командой будет проверка файла версии распространения внутри контейнера с помощью команды cat, как показано.
14. Чтобы снова запустить контейнеры, сначала вам нужно получить идентификатор или имя контейнера, выполнив следующую команду, которая отобразит список запущенных и остановленных контейнеров:
15. После получения идентификатора или имени контейнера вы можете запустить контейнер с помощью следующей команды:
Здесь строка 0ddfa81c5779 представляет идентификатор контейнера, аastic_shirley представляет имя контейнера.
16. Чтобы остановить запущенный контейнер, запустите команду docker stop, указав идентификатор контейнера или имя.
17. Более лучший способ, чтобы вам не нужно было запоминать идентификатор контейнера, – это определить уникальное имя для каждого контейнера, который вы создаете, используя опцию –name, как показано.
18. Чтобы подключить и запустить команды Linux в контейнере, введите следующую команду.
19. Чтобы выйти и вернуться к хосту из сеанса работающего контейнера, вы должны ввести команду exit, как показано ниже
Это все для основных манипуляций с контейнерами.
Если у вас есть какие-либо вопросы или комментарии по поводу этой статьи, используйте форму обратной связи ниже, чтобы связаться с нами.
Источник
Docker посмотреть запущенные контейнеры, запустить или остановить контейнеры
Docker — это популярный инструмент виртуализации, который копирует конкретную операционную среду поверх основной ОС. Каждая среда называется контейнером. Управление контейнерами необходимо для работы в Docker.
Контейнер использует образ предварительно сконфигурированной операционной системы, оптимизированный для конкретной задачи. Когда образ Docker запущен, он существует в контейнере. Например, несколько контейнеров могут одновременно запускать один и тот же образ в одной операционной системе.
Список запущенных Docker контейнеров
Базовый формат Docker:
Чтобы вывести список всех запущенных контейнеров Docker, введите в окне терминала следующее:
Как вы можете видеть, изображение выше указывает на отсутствие запущенных контейнеров.
Чтобы вывести список всех работающих и остановленных контейнеров, добавьте параметр –a :
Для вывода списка контейнеров по их идентификатору используйте параметр –aq :
Чтобы просмотреть общий размер файла каждого контейнера, используйте параметр –s :
Чтобы просмотреть список последних созданных контейнеров, используйте параметр –l :
Команда ps предоставляет несколько столбцов информации:
- Container ID — Уникальный буквенно-цифровой номер для каждого контейнера
- Image — Образ базовой операционной системы, на котором основан контейнер
- Command — команда, запустившая контейнер
- Created — Как давно был создан контейнер
- Status — Время работы или простои
- Ports — Указывает любые порты, перенаправляемые в контейнер для работы в сети.
- Name — Памятное имя, присвоенное программным обеспечением Docker
Как запустить Docker контейнер
Основная команда для запуска одного или нескольких остановленных контейнеров Docker docker start :
Вы можете указать контейнер, используя его имя или идентификатор (длинный или короткий).
Чтобы создать новый контейнер из образа и запустить его, используйте docker run :
Если вы не определите имя для вновь созданного контейнера, он создаст случайное имя строки. Чтобы определить имя контейнера, используйте параметр ––name :
Вышеупомянутая команда создаст контейнер Ubuntu_test на основе образа ubuntu: 14.04 и запустит его.
Контейнер может быть запущен, но вы не сможете взаимодействовать с ним. Чтобы запустить контейнер в интерактивном режиме, используйте параметры –i и –t :
В приведенном выше примере система создает контейнер Test_2 из образа ubuntu и подключается к нему, позволяя запускать команды непосредственно в контейнере.
Вместо использования параметров -i или -t , используйте команду для подключения к работающему контейнеру : attach
Как остановить Docker контейнер
Чтобы остановить Docker контейнер, используйте команду docker stop :
Замените container_id на имя контейнера или идентификатор.
По умолчанию вы получаете 10-секундный период. Команда stop указывает контейнеру остановить службы после этого периода. Используйте параметр —time для определения другого периода, выраженного в секундах:
Чтобы немедленно остановить docker контейнер, не дожидаясь окончания периода:
Чтобы остановить все запущенные контейнеры, введите следующее:
Эту же команду можно использовать с kill . Это остановит все контейнеры, не давая им возможности выйти.
Заключение
Данное руководство показывает все команды и параметры для для просмотра, запуска и остановки Docker контейнеров. Docker используется командами разработчиков для обеспечения согласованности на разных машинах.
Источник
10 команд для Docker, без которых вам не обойтись
Docker — отличный инструмент для создания микросервисов, который позволяет создавать облачные приложения и системы. Чтобы выжать из него максимум через терминал, вам пригодятся 10 команд, перечисленных ниже.
Контейнер запускается путём запуска образа. Образ — исполняемый пакет, который содержит всё необходимое для запуска приложения: код, среду выполнения, библиотеки, переменные среды и конфигурационные файлы.
Контейнер создаётся из образа. Это то, чем становится образ во время исполнения (иными словами, образом с состоянием или пользовательским процессом). Вы можете просмотреть список запущенных контейнеров с помощью команды docker ps , прямо как в Linux.
- docker ps — показывает список запущенных контейнеров. Некоторые из полезных флагов:
- -a / —all — список всех контейнеров (по умолчанию показывает только запущенные);
- -q / —quiet — перечислить только id контейнеров (полезно, когда вам нужны все контейнеры).
- docker pull — большинство образов создаётся на основе базового образа из Docker Hub. Docker Hub содержит множество готовых образов, которые можно использовать вместо того, чтобы создавать и настраивать свой собственный. Чтобы скачать определённый образ или набор образов (репозиторий), используйте команду docker pull .
- docker build — эта команда собирает образ Docker из Dockerfile и «контекста». Контекст сборки — это набор файлов, расположенных по определённому пути или URL. Используйте флаг -t , чтобы задать имя образа. Например, команда docker build -t my_container . соберёт образ, используя текущую директорию, на что указывает точка в конце.
- docker run — запускает контейнер, на основе указанного образа. Эту команду можно дополнять другими, например, docker run my_image -it bash запустит контейнер, а затем запустит в нём bash.
- docker logs — эта команда используется для просмотра логов указанного контейнера. Можно использовать флаг —follow , чтобы следить за логами работающей программы: docker logs —follow my_container .
- docker volume ls — показывает список томов, которые являются предпочитаемым механизмом для сохранения данных, генерируемых и используемых контейнерами Docker.
- docker rm — удаляет один и более контейнеров, например, docker rm my_container .
- docker rmi — удаляет один и более образов, например, docker rmi my_image .
- docker stop — останавливает один и более контейнеров. Команда docker stop my_container остановит один контейнер, а docker stop $(docker ps -a -q) — все запущенные. Более грубый способ — использовать docker kill my_container , который не пытается сначала аккуратно завершить процесс.
- Можно комбинировать эти команды. Например, для очистки всех контейнеров и образов:
- Останавливаем все запущенные контейнеры docker kill $(docker ps -q) .
- Удаляем все остановленные контейнеры docker rm $(docker ps -a -q) .
- Удаляем все образы docker rmi $(docker images -q) .
Существует гораздо больше команд для Docker, о которых можно почитать в документации. Пробуйте новые примеры, комбинируйте их, и скоро это войдёт в привычку.
Источник
Запуск контейнера Docker на Linux
Клиент Docker предназначен для облегчения управления приложениями внутри контейнеров. Так, он дает пользователю возможность отдельно запускать программы в процессах с изолированными ресурсами. Это напоминает работу в виртуальных машинах, однако контейнеры отличаются более низкой требовательностью к ресурсам, высокой портируемостью и большей зависимостью от операционной системы.
Процесс установки Docker
Чтобы выполнить запуск контейнера, понадобится иметь под рукой настроенный сервер с установленным дистрибутивом Linux. В операционной системе необходимо создать обычного пользователя (не root) и установить фаервол.
Работу с Docker рассмотрим на примере Ubuntu, который является одним из наиболее популярных дистрибутивов для сервера.
Заранее стоит отметить, что в репозитории Ubuntu не всегда предлагается последняя версия Docker. Поэтому этот сервис предпочтительнее устанавливать непосредственно из его официального репозитория. Соответственно, следует добавить в систему новый репозиторий, ввести ключ GPG для проверки действительности скачиваемой версии и лишь затем приступать к установке.
Работа с командой Docker без прав суперпользователя
В дефолтных настройках предусмотрено, что для запуска Docker необходимо иметь права root-пользователя или пользователя из группы docker, создаваемой автоматически во время установки сервиса.
Если попробовать запустить в терминале Docker без этих прав или, не являясь пользователем группы docker, появится ситуация, когда не запускается контейнер.
Поэтому если нет желания постоянно набирать sudo перед запуском команды, стоит добавить своего пользователя в указанную выше группу:
Чтобы применить изменения, потребуется выйти с заново войти на сервер. Можно также воспользоваться этой командой:
Продолжить работу можно будет после ввода пароля пользователя. Проверить, что добавление пользователя прошло успешно, можно командой (пользователь sammy):
При желании добавить выбранного пользователя в группу, можно указать его имя:
Последующие шаги предполагают, что пользователь уже добавил себя в группу docker. Если нет желания это делать, перед командами необходимо набирать sudo .
Как пользоваться командами Docker?
С помощью команды docker можно пользоваться различными опциями, а также командами с аргументами. Ниже показан ее синтаксис:
docker [option] [command] [arguments]
Чтобы ознакомиться со всеми подкомандами, можно набрать следующее:
Здесь показан список из Docker 18.
Можно получить информацию по использованию выбранной команды:
Для получения полной информации по Docker потребуется ввести следующее:
Как работать с образами Docker
Запуск контейнеров выполняется из образов. Изначально Docker берет образы в хабах Docker Hub (реестр образов, поддерживаемый разработчиком). Любой имеет возможность создавать и загружать собственные образы. Так что для большей части дистрибутивов и программ уже имеются необходимые образы в Docker Hub.
Приведенная ниже команда позволяет проверить, есть ли возможность получить доступ и скачивать образы в Docker Hub (на примере образа hello-world):
Этот вывод данных указывает, что Docker работает правильно:
Сначала сервис не мог найти образ hello-world на локальной машине, из-за чего ему приходилось загрузить образ в хабе (репозитории по умолчанию). После его скачивания Docker создал отдельный контейнер из образа и уже затем запускал в нем программу контейнере.
Представленные в хабе образы можно найти при помощи команд docker и search. К примеру, найти образ Ubuntu можно следующим образом:
Далее скрипт просмотрит содержимое хаба и покажет все образы, соответствующие заданным критериям. В предложенном примере результат будет примерно таков:
Строчка OK в столбце OFFICIAL говорит о том, что образ создан и его поддержка осуществляется компанией, ответственной за этот проект. Выбрав требуемый образ, его можно скачать на компьютер, используя подкоманду pull.
Загрузка официального образа Ubuntu на компьютер выполняется такой командой:
По завершении операции отобразится такой результат:
Когда образ будет скачан, станет возможным выполнить запуск контейнера из образа при помощи команды run. На примере hello-world видно, что если после ввода run образ не был скачан, сначала клиент загрузит его и уже запустит контейнер с образом.
Чтобы посмотреть, какие образы были загружены на компьютер, используется команда:
Результат будет похожим на следующий:
Ниже можно увидеть, что образы для запуска контейнеров можно менять и использовать при создании других образов. Причем последние можно загрузить в Docker Hub или другие репозитории. Далее будет рассмотрено более подробно, как работать с контейнерами.
Запуск контейнера Docker
Запущенный ранее hello-world представляет собой пример контейнера, который открывается и закрывается после отображения тестового сообщения. При этом контейнеры предназначены для выполнения более полезных задач. Они имеют много общего с виртуальными машинами, однако требуют намного меньше ресурсов для работы.
Можно рассмотреть, как запустить контейнер при помощи последней версии образа Ubuntu. Добавление опций -i и -t предоставляет доступ в интерактивном режиме к командному процессору:
Командная строка изменится, указывая на переход в контейнер, и будет выглядеть таким образом:
Следует обратить внимание, что также отображается идентификатор контейнера. Здесь это 2c88170e5391. Он понадобится позже, чтобы сообщить клиенту, какой именно удалить контейнер.
После этого можно запустить любую команду в контейнере. К примеру, можно обновить базу данных пакетов. Для этого нет необходимости пользоваться командой sudo, поскольку работа ведется от имени пользователя с root-правами:
Затем появится возможность установки приложений. Рассмотрим пример установки Node.js:
Эта команда выполнит установку Node.js в контейнер, используя репозиторий Ubuntu. По завершении установки можно проверить, была ли она успешно выполнена:
Будет показан номер текущей версии Node.js:
Проведенные изменения в контейнере распространяются только на него. Завершить работу с контейнером можно командой exit .
Команды для управления контейнерами
Со временем после работы с Docker на локальной машине соберется достаточное количество активных и неактивных контейнеров. Для просмотра запущенных контейнеров применяется команда:
Система выведет примерные результаты:
В этой инструкции разбирался запуск двух контейнеров — с образов hello-world и ubuntu. Хотя сейчас они не активные, но уже расположены в системе. Для просмотра находящихся в системе контейнеров нужно запустить docker ps, добавив параметр -a:
В терминале отобразится примерный вывод:
Для просмотра последних созданных контейнеров используется опция -l:
Чтобы запустить остановленный контейнер, необходимо ввести docker start и далее указать идентификатор или имя контейнера. Так выглядит запуск контейнера 2c88170e5391:
Контейнер будет запущен и чтобы просмотреть его статус, используется команда docker ps :
Чтобы выключить активный контейнер, используется команда docker stop с последующим указанием его идентификатора или имени. Здесь уже потребуется воспользоваться именем, которое предоставил контейнеру Docker (peaceful_minsky):
Также может потребоваться перезапустить контейнер, не отключая его. Это можно сделать командой:
Отдельного внимания заслуживает запуск контейнера docker compose. Так, после смены настроек в файле docker-compose.yml (например, проброс порта) изменения не выполнятся автоматически. Вдобавок, команда restart также не поможет и потребуется выполнить пересборку контейнера, применив для этого команду build. Другими словами, он будет заново создан. Выполнить операцию можно следующей командой:
После чего отобразится похожий вывод:
Потребуется пара секунд, чтобы перезапуск контейнера полностью завершился, хотя в действительности Docker осуществив намного больше операций. То есть, собрал новый образ, создал новый контейнер на его основе, остановил старый, запустил новый и удалил старый.
Когда контейнер уже не нужен для дальнейшей работы, его можно удалить, набрав в терминале docker rm с добавлением его имени или идентификатора. Для поиска этих данных, которые связаны с hello-world, вводится команда:
После чего можно приступать к удалению контейнера.
Чтобы осуществить запуск нового контейнера с присвоением ему имени, предусмотрена опция —name. Также можно воспользоваться опцией —rm, позволяющей создавать контейнер, который будет автоматически удален после его остановки. Более подробную информацию о данных и других параметрах можно получить после ввода docker run help.
Помимо указанных выше команд из существующих контейнеров можно создавать образы для создания новых. Об этом речь пойдет далее.
Как сохранить изменения в новый образ?
Во время запуска контейнера из существующего образа у пользователя есть возможность создавать или удалять файлы, аналогично работе на виртуальной машине. При этом изменения будут распространяться только в определенном контейнере. Доступна и возможность запуска с последующей остановкой контейнера, но после его удаления с помощью docker rm будут утеряны внесенные изменения.
Соответственно, следует ознакомиться со способом сохранения текущего контейнера как нового образа.
По завершении инсталляции Node.js в контейнере Ubuntu, на компьютере работает загруженный из образа контейнер. При этом он будет отличаться от использованного для его создания образа. В свою очередь, пользователю может понадобиться уже контейнер Node.js, чтобы использовать его при создании для новых образов.
Соответственно, следует сохранить результаты в текущем образе предложенной ниже командой:
Добавление опции -m дает возможность указать сообщение подтверждения. Это позволит будущим пользователям образа понять, что именно было изменено. Что касается параметра -a — с его помощью можно указать, кто его создатель. container_id является тем же идентификатором, который был использован ранее, во время запуска интерактивной сессии в Docker.
Если вы не занимались до этого созданием новых репозиториев в Docker Hub, имя создаваемого репозитория по умолчанию будет названо именем вашего пользователя в Docker Hub.
К примеру, с именем пользователя admin и идентификатором 2c8ec46adae1 команда должна иметь следующий вид:
После того, как образ будет подтвержден (commit) он сохраняется на компьютере локально. Далее будет рассмотрен пример его отправки в репозиторий Docker, чтобы он стал доступным и для других пользователей. Если же посмотреть список образов по завершении этой операции, в нем будет добавлен новый образ, причем исходный также останется на месте:
Ниже показан примерный результат проверки:
В предложенном выводе ubuntu-nodejs является созданным образом на базе уже имеющегося ubuntu, загруженного в Docker Hub. Проведенные изменения можно увидеть по тому, насколько изменился размер образа. Поскольку изменение касалось только инсталляции NodeJS, при необходимости запуска Ubuntu с этим предустановленным приложением, можно воспользоваться созданным образом.
Остается отправить свой образ в репозиторий, чтобы остальные пользователи имели возможность создать контейнеры на его базе.
Отправка контейнеров в реестр
Завершающий этап — сохранение созданных образов в базу Docker Hub или другой репозиторий, откуда их может скачать любой желающий. Чтобы получить такую возможность, предварительно нужно создать аккаунт.
Отправка образов в репозиторий начинается с авторизации на Docker Hub.
Чтобы вход был успешно осуществлен, потребуется ввести пароль Docker Hub. Если он правильный, авторизация пройдет успешно.
Здесь важно знать, что если в реестре Docker имя пользователя отличается от локального, используемого при создании образа, обязательно нужно привязать этот образ к имени учетной записи в хабе. На примере контейнера с NodeJS команда привязки будет выглядеть так:
После чего можно приступать к загрузке образа на сервер:
Что касается разбираемого примера ubuntu-nodejs, для отправки его в реестр sammy следует ввести эту команду:
Загрузка образа может занять время. Когда образ будет находиться в репозитории, его название появится в списке, открываемом в панели управления вашего аккаунта.
В таком случае необходимо снова попытаться сделать вход с использованием docker login и загрузить образ. Наконец, остается проверить, что он был добавлен успешно. Затем можно набрать в терминале docker pull admin/ubuntu-nodejs, чтобы воспользоваться образом на новой машине и пользоваться им при создании новых контейнеров.
Автозагрузка контейнеров
Часто встречается ситуация, когда контейнеры останавливаются вследствие определенных факторов. Простейший пример – произошла перезагрузка сервера. Чтобы избавиться от необходимости вручную запускать их, можно настроить автозапуск контейнеров. Для этого следует создать текстовые файлы со специальным форматом для сервиса systemcmd. Рассмотрим пример их создания на примере контейнера my-db, введя в терминал команду:
В пустой файл необходимо добавить следующий код и сохранить его:
После этого остается перезапустить демон systemcmd и включить автозагрузку контейнера mydb, набрав в терминале поочередно команды:
Начни экономить на хостинге сейчас — 14 дней бесплатно!
Источник