Привет, меня зовут Андрей и сегодня я расскажу о своем опыте выполнения задания, которое включает развертывание и запуск контейнера с моим собственным образом.Для начала, я решил создать сайт на CMS WordPress. Для этого я загрузил официальный образ WordPress с Docker Hub на свою локальную машину. Затем, я создал файл docker-compose.yml, в котором указал конфигурацию для запуска контейнера с образом WordPress.yaml
version⁚ ‘2’
services⁚
wordpress⁚
image⁚ wordpress⁚latest
ports⁚
⏤ 8080⁚80
environment⁚
⎼ WORDPRESS_DB_NAMEmydatabase
⎼ WORDPRESS_DB_USERmyuser
⏤ WORDPRESS_DB_PASSWORDmypassword
volumes⁚ restart⁚ always
mysql⁚
image⁚ mysql⁚5.7
environment⁚
⏤ MYSQL_DATABASEmydatabase
⏤ MYSQL_USERmyuser
⎼ MYSQL_PASSWORDmypassword
⎼ MYSQL_ROOT_PASSWORDmyrootpassword
volumes⁚
⎼ ./mysql-data:/var/lib/mysql
restart⁚ always
После того, как я создал файл docker-compose.yml, я открыл терминал и перешел в директорию, где находится файл. Затем, я использовал команду `docker-compose up -d`, чтобы развернуть и запустить контейнер.
Мой контейнер успешно развернулся и я смог открыть сайт WordPress в браузере, введя адрес `http://localhost:8080`. Теперь я могу создавать и редактировать свой собственный сайт на базе WordPress, а все изменения будут сохраняться в локальной директории `wp-content`.
Выполнив первую часть задания, я перешел к выполнению второй части, которая требовала установки двух операционных систем в виртуальную машину и создания кластера из двух машин.Я использовал Oracle VM VirtualBox для создания виртуальной машины и установил на нее две операционные системы⁚ Ubuntu и CentOS. Затем, я настроил сетевые настройки виртуальной машины таким образом, чтобы они были доступны друг другу.Для создания кластера из двух машин, я использовал Kubernetes. Сначала я установил Kubernetes на каждую виртуальную машину, следуя официальной документации. Затем, я настроил кластер, указав IP-адрес каждой машины.
После настройки кластера, я сделал первую ноду лидером, выполнив команду `kubectl apply -f node1.yaml`, где node1.yaml ⎼ файл конфигурации для первой ноды. Аналогично, я сделал вторую ноду лидером, выполнив команду `kubectl apply -f node2.yaml`, где node2.yaml ⎼ файл конфигурации для второй ноды.В следующем шаге, я добавил каждой ноде метку. Для этого я использовал команду `kubectl label nodes <имя_ноды> <метка>`, где <имя_ноды> ⎼ имя каждой ноды, а <метка> ⏤ название метки, которой я хотел пометить ноду. Например, я добавил метку ″prod″ к первой ноде и метку ″stage″ ко второй ноде.Проверив, что метки успешно добавились, я приступил к развёртыванию моего приложения на двух машинах кластера. Я использовал Docker для создания и запуска контейнера с моим приложением на каждой ноде. Для этого я использовал следующую команду⁚
bash
docker run -d -p 8080⁚80 myapp⁚latest
Где myapp⁚latest ⏤ мой образ с приложением, который я предварительно загрузил в Docker Hub или собрал локально.
После выполнения команды, контейнеры с моим приложением успешно создались на каждой ноде кластера. Я проверил работоспособность приложения, введя адрес `http://
В результате, я успешно развернул и запустил контейнер с моим собственным образом, а также создал кластер из двух машин, каждая из которых управляет кластером в качестве лидера. Я также добавил метки к каждой ноде и развернул мое приложение на каждой ноде.
Я рад, что смог поделиться с вами своим опытом выполнения данного задания. Надеюсь, мой опыт будет полезен и вдохновит вас на собственные исследования и эксперименты с контейнерами и виртуализацией. Удачи вам!