Как установить, запустить и удалить приложения внутри контейнеров Docker -- часть 2

Как установить, запустить и удалить приложения внутри контейнеров Docker — часть 2

Продолжая серию статей о Docker, в этой статье мы обсудим, как сохранить контейнеры Docker в новый образ, удалить контейнер и запустить веб-сервер Nginx внутри контейнера.

How-to-Install,-Run-and-Delete-Applications-inside-Docker-Containers-–-Part-2

 

 

Содержание:

 

Как запустить и сохранить контейнер docker

1. В этом примере мы запустим и сохраним контейнер Docker на базе Ubuntu, где будет установлен сервер Nginx. Но прежде чем совершать какие-либо изменения в контейнере, сначала запустите контейнер с помощью команды приведённой ниже, которая устанавливает демон Nginx в образ Ubuntu:

 

Install-Nginx-on-Ubuntu-Docker-Container

 

 

2. Затем, после установки пакета Nginx, выполните команду docker ps -l, чтобы получить идентификатор или имя запущенного контейнера.

 

Find-Docker-Container-ID-Name

 

 

И примените изменения, выполнив следующую команду:

 

Здесь 5976e4ae287c является идентификатором контейнера, а ubuntu-nginx представляет собой имя нового образа, которое было сохранено с фиксированными изменениями.

Чтобы просмотреть, успешно ли был создан новый образ, просто запустите команду docker images и отобразится список всех сохраненных образов.

 

Docker-Container-Changes

 

 

Зачастую, процессы внутри контейнера быстро завершаются, что приводит к неработоспособности контейнера (контейнер останавливается). В этом случае команда docker ps не будет давать какой-либо вывод, потому что контейнер не запущен.

Для того, чтобы все еще можно было получить версию id контейнера выполните команду docker ps -a | head -3 для вывода последних контейнеров и идентификации их на основе данной команды.

3. В качестве альтернативы вы можете войти в сеанс контейнера, запустив команду docker run -it ubuntu bash и выполнить внутри команду apt-get install nginx. Во время выполнения команды выйдите из контейнера с помощью клавиш Ctrl-p + Ctrl-q, в таком случае контейнер продолжит работу, даже если процесс установки Nginx завершится.

 

Install-Nginx-on-Docker-Container

 

 

Затем получите идентификатор работающего контейнера с помощью docker ps и зафиксируйте изменения. По завершении повторно войдите в консоль контейнера, используя docker attach и введите exit, чтобы остановить контейнер.

 

Attach-Docker-Container

 

 

4. Если последний образ был создан должным образом (в этом случае служба Nginx была установлена), выполните следующую команду, чтобы создать новый контейнер, который выведется, когда будет успешно установлен Nginx:

 

Generate-New-Docker-Container

 

 

5. Чтобы удалить контейнер, используйте команду rm с идентификатором или именем контейнера, который можно получить с помощью команды docker ps -a:

 

Container

 

 

Как запустить Nginx внутри контейнера Docker?

6. В этой части мы сосредоточимся на том, как вы можете запускать и получать доступ к сетевому сервису, например веб-серверу Nginx, внутри Docker, используя образ ubuntu-nginx и демон Nginx созданный ранее.

Первое, что вам нужно сделать, это создать новый контейнер, отобразить порты контейнера и его оболочку, выполнив следующую команду:

 

Здесь параметр -p передаёт порт хоста для порта контейнера. Хотя хост-порт может быть произвольным, при условии, что он должен быть доступен (никакие другие хост-службы не должны его прослушивать), порт контейнера должен быть именно тем портом, который прослушивает внутренний демон.

Как только вы подключитесь к сеансу контейнера, запустите демон Nginx в фоновом режиме и отсоедините его от консоли контейнера, нажав клавиши Ctrl-p + Ctrl-q.

Container

 

 

7. Теперь запустите docker ps, чтобы просмотреть состояние вашего запущенного контейнера. Вы также можете просмотреть сетевые сокеты хоста, выполнив следующую команду:

 

ИЛИ

 

View-Docker-Container-Running-State

 

 

8. Чтобы посетить страницу, обслуживаемую контейнером Nginx, откройте удаленно браузер в вашей локальной сети и введите IP-адрес вашего компьютера с использованием протокола HTTP.

Verify-Nginx-Running-under

 

 

9. Чтобы остановить контейнер, выполните следующую команду, за которой следует идентификатор или имя контейнера:

 

Stop-Running-Docker-Container

 

 

В качестве альтернативы для остановки работающего контейнера введите команду командной оболочки контейнера и введите exit для завершения процесса:

 

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

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University.

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

1 комментарий. Оставить новый

  • Команда docker commit сохраняет установленные приложения, но не сохраняет скачанные из Интернета пользователськие файлы. Как сделать так, чтобы сохранялись пользовательские файлы?

    Ответить

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

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

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню