Skip to content

Informatics-ITMO-2024/lab-4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Лабораторная работа 4.

Для решения понадобится установить Docker. Можно это делать как в виртуальной машине с установленным Linux, так и через WSL (главное на линукс подобной системе).

Пример (не надо его включать в отчет!)

Создадим docker image (образ). Для этого понадобится написать Dockerfile. Создаём пустой текстовый документ, где в первую очередь указываем, на основе какого образа будет работать наш.

FROM ubuntu:latest

Далее указываем, что мы хотим запустить. В нашем случае мы обновляем пакетный менеджер и устанавливаем ПО под названием cowsay.

RUN apt-get update && apt-get install -y cowsay fortune

На этом Dockerfile готов, закрываем и сохраняем его под этим названием. В терминале в папке с этим файлом запускаем команду сборки образа с тегом “cowsay”.

docker build -t cowsay .

Далее запускаем контейнер на основе созданного образа. При создании контейнера передаём ему запуск приложения “cowsay”, которое находится в папке /usr/games и передаём приложению команду "Moo".

docker run cowsay /usr/games/cowsay "Moo"

Наслаждаемся результатом.

Далее можем подключиться запустить контейнер и подключиться к нему напрямую командой

docker run -it cowsay

И уже напрямую в терминале контейнера запустить команду

/usr/games/cowsay "Moo"

Проверим запущенные контейнеры у вас на машине командой

docker ps

Особенность контейнеризации заключается в том, что рекомендуется под один сервис запускать один контейнер. Также, когда сервис отработал, контейнер автоматически заканчивает свою работу. Поскольку своё предназначение данный контейнер выполнил - вы не увидите его в выводе команды.
Но в случае, если контейнер был запущен с флагом -it – он ожидает ручных команд и не будет отключаться самостоятельно.

Задание:

Запустить в контейнере приложение “aafire”. Обратите внимание, что оно бесконечное и контейнер не будет автоматически отключаться.
Приложить скриншот в процессе работы контейнера.

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

Для проверки сети между контейнерами вам потребуется утилита ping. Поскольку контейнеры очень маленькие и в них нет ничего лишнего (по сравнению с виртуальными машинами) - ping там не установлен. В вашем образе нужно будет установить пакет с этой утилитой, помимо aafire.

Далее запустите два контейнера с aafire и оставьте их в работающем состоянии.
Откройте ещё одно окно терминала и создайте сеть при помощи команды

docker network create myNetwork

После этого нужно будет подключить контейнеры к вашей сети. Названия контейнеров можно увидеть при выводе списка действующих контейнеров у вас на машине.

docker network connect myNetwork mycontainer1
docker network connect myNetwork mycontainer2

Теперь при помощи следующей команды вы можете увидеть настройки созданной вами сети.

docker network inspect myNetwork

Далее вам нужно самостоятельно протестировать соединение между контейнерами утилитой ping и приложить скриншот.

Как успешно сдать работу?

Создать свой репозиторий из шаблона этого. Как это делается - "Use this template" -> "Create a new repository" и сделайте его public.

Находясь уже в своем репозитории - создайте новый файл формата .md и там оформляйте отчет. В отчете опишите все шаги которые вы делали, чтобы получить финальный результат работы.

Что вам нужно знать, чтобы успешно защитить работу:

Как создавать и управлять - докерфайлом (команды, оптимизация), образами (создание, запуск, принцип работы), контейнерами (запуск, отслеживание, объединение); виртуализация и контейнеризация.

Источники

Источник где можно найти все

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published