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

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

dockerНовости

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

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

 

 

Содержание:

 

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

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

# docker run ubuntu bash -c "apt-get -y install nginx"

 

Install-Nginx-on-Ubuntu-Docker-Container

 

 

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

# docker ps -l

 

Find-Docker-Container-ID-Name

 

 

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

# docker commit 5976e4ae287c ubuntu-nginx

 

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

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

# 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 завершится.

# docker run -it ubuntu bash
# apt-get install nginx

 

Install-Nginx-on-Docker-Container

 

 

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

# docker ps
# docker attach 3378689f2069
# exit

 

Attach-Docker-Container

 

 

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

# docker run ubuntu-nginx whereis nginx

 

Generate-New-Docker-Container

 

 

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

# docker ps -a
# sudo docker rm 36488523933a

 

Remove-Docker-Container

 

 

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

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

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

# docker run -it -p 81:80 ubuntu-nginx /bin/bash
# nginx &

 

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

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

Run-Nginx-Inside-Docker-Container

 

 

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

# docker ps

 

ИЛИ

# netstat -tlpn

 

View-Docker-Container-Running-State

 

 

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

Verify-Nginx-Running-under-Docker-Container

 

 

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

# docker ps
# docker stop fervent_mccarthy
# docker ps

 

Stop-Running-Docker-Container

 

 

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

# docker attach fervent_mccarthy
# exit

 

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

 

 

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

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

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

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

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
dockerНовости

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

Ушлый хакер долго обманывал десятки компаний, специалист по информационной безопасности где учиться Минск

Ушлый хакер долго обманывал десятки компаний, специалист по информационной безопасности где учиться Минск

51
0
Недавно власти США поймали хакера, который занимался мошенничеством. Прежде всего он обманывал как пользователей, так и компании. Помимо того, участвовал…

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

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

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

Most Viewed Posts
Меню