Как создать контейнер для сайта


Блочные элементы | htmlbook.ru

Блочным называется элемент, который отображается на веб-странице в виде прямоугольника. Такой элемент занимает всю доступную ширину, высота элемента определяется его содержимым, и он всегда начинается с новой строки. К блочным элементам относятся контейнеры <div>, <h2>, <p> и др.

Допускается вкладывать один блочный элемент внутрь другого, а также размещать внутри них встроенные элементы (<span>, например). Запрещено добавлять внутрь встроенных элементов блочные (пример 1).

Пример 1. Использование блочных элементов

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Блочные элементы</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <div><p>Lorem ipsum dolor sit amet...</p></div> <h3><a href="link1.html">Ut wisi enim ad minim veniam</a></h3> </body> </html>


В данном примере абзац (тег <p>) вставляется внутрь контейнера <div>, а ссылка (тег <a>) — в заголовок <h3>. Кстати, ошибкой будет поступить наоборот — добавить <h3> в контейнер <a> (<a href="link1.html"><h3>Ut wisi</h3></a>), поскольку тег <a> не относится к блочным элементам.

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

Ширина блочных элементов

По умолчанию ширина блока вычисляется автоматически и занимает все доступное пространство. Здесь следует оговорить, что под этим подразумевается. Например, если тег <div> в коде документа присутствует один, то он занимает всю свободную ширину окна браузера и ширина блока будет равна 100%. Стоит поместить один тег <div> внутрь другого, как ширина внутреннего тега начинает исчисляться относительно его родителя, т.е. внешнего контейнера.

Некоторые браузеры достаточно свободно трактуют понятие ширины, хотя в спецификации CSS четко указано, что ширина складывается из суммы следующих параметров: ширины самого блока (width), отступов (margin), полей (padding) и границ (border). В примере 2 показано создание слоя, в котором присутствуют все эти компоненты.

Пример 2. Ширина слоя

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Ширина</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> DIV { width: 300px; /* Ширина слоя */ margin: 7px; /* Значение отступов */ padding: 10px; /* Поля вокруг текста */ border: 4px solid black; /* Параметры границы */ background: #fc0; /* Цвет фона */ } </style> </head> <body> <div>Lorem ipsum dolor sit amet...</div> </body> </html>

В результате данного примера получим слой шириной 342 пиксела. На рис. 1 показано, из чего складывается ширина слоя.

Рис 1. Ширина блочного элемента

В том случае когда <!DOCTYPE> в коде не указан, браузер Internet Explorer за ширину всего блока принимает значение свойства width.

Разберем еще один пример связанный с шириной. По умолчанию ширина слоя задается как auto, это позволяет вписывать слой в окно браузера, не принимая в расчет значения установленных полей. Если изменить ширину на 100%, то при добавлении значения отступов, полей или границ неминуемо появится горизонтальная полоса прокрутки.

Для получения универсального результата существует несколько подходов. В примере 3 продемонстрировано создание трех слоев, ширина которых определяется в процентах.

Пример 3. Ширина слоя в процентах

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Ширина</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> #layer1 { width: 100%; /* Ширина первого слоя */ padding: 10px; /* Поля вокруг текста */ background: #fc0; /* Цвет фона */ } #layer2 { width: 100%; /* Ширина второго слоя */ background: #cc0; /* Цвет фона */ } #layer2 P { padding: 10px; /* Поля вокруг параграфа */ } #layer3 { background: #3ca; /* Цвет фона третьего слоя */ padding: 10px; /* Поля вокруг текста */ } </style> </head> <body> <div>Lorem ipsum dolor sit amet...</div> <div><p>Lorem ipsum dolor sit amet...</p></div> <div>Lorem ipsum dolor sit amet...</div> </body> </html>


Результат примера показан на рис. 2.

Рис. 2. Отображение ширины слоев в браузере

Ширина первого слоя в данном примере (layer1) установлена как 100%, что приводит к отображению горизонтальной полосы прокрутки. Для второго слоя (layer2) ширина также задана 100%, но поля определяются для внутреннего абзаца (тег <p>). За счет этого ширина слоя во всех браузерах будет одинаковой. К третьему слою (layer3) вообще не применяется свойство width, поэтому оно определяется по умолчанию — auto. В таком случае слой будет занимать всю ширину окна браузера без всяких горизонтальных полос.

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

Высота

С высотой блочных элементов дело обстоит аналогично ширине. Браузер за высоту слоя принимает значение свойства height и добавляет к нему еще значение margin, padding и border. Если высота слоя не установлена явно, то она вычисляется автоматически исходя из объема содержимого.

Допустим, для слоя установлена высота в пикселах, а содержимое слоя однозначно превышает указанную высоту (пример 4).

Пример 4. Высота слоя

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Высота</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> #layer1 { width: 300px;/* Ширина слоя */ background: #fc0; /* Цвет фона */ height: 50px; /* Высота слоя */ padding: 5px; /* Поля вокруг текста */ } </style> </head> <body> <div> Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis te feugifacilisi. </div> </body> </html>

Результат данного примера продемонстрирован на рис. 3.

Рис. 3. Высота блока в разных браузерах

Видно, что браузер оставляет высоту неизменной, за счет чего текст не помещается в блоке и накладывается поверх слоя.

Цвет фона

Цвет фона элемента проще всего устанавливать через универсальное свойство background. Фоном при этом заливается область, которая определяется значениями width, height и padding (рис. 4).

Рис. 4. Область слоя, которая заполняется фоновым цветом

Таким образом, margin не принимает участия в формировании цветной области.

Границы

Из-за разницы в подходах браузеров при формировании блочных элементов наблюдается и различие при отображении границ. Браузер Internet Explorer 7 проводит рамку внутри блока, а Firefox — снаружи. Но если использовать фоновую заливку, то увидим совершенно противоположную картину (рис. 5). А все потому, что Firefox (Opera) цвет фона устанавливает по внешнему краю границы, а Internet Explorer — по внутренней. Начиная с версии 8.0 Internet Explorer поменял стиль отображения рамки, она проводится внутри блока, как и в Firefox.

а. Internet Explorer 7

б. Firefox, Internet Explorer 8+

в. Opera

Рис. 5. Отображение рамки в браузерах

В примере 5 показано, как создать код для получения подобной границы.

Пример 5. Пунктирная рамка

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Рамка</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> #layer1 { width: 300px; /* Ширина слоя */ padding: 10px; /* Поля вокруг текста */ background: #fc0; /* Цвет фона */ border: 5px dashed black;/* Параметры границы */ } </style> </head> <body> <div>Lorem ipsum dolor sit amet...</div> </body> </html>

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

Резюме

Блочные элементы выступают в качестве основного строительного материала при верстке веб-страниц. Такие элементы характерны тем, что всегда начинаются с новой строки и занимают всю доступную ширину области, в которой располагаются.

Спецификация CSS определяет, что высота и ширина элемента определяется не только значениями height и width, но к ним еще плюсуется значение полей, отступов и границ. Браузеры в этом плане делятся на две части: одни поддерживают в этом вопросе спецификацию, другие же ее игнорируют и поступают по-своему. Это создает трудности разработчикам, которые желают делать универсальные веб-страницы. Можно только посоветовать ограниченно использовать свойства width и height, поскольку по умолчанию браузер применяет аргумент auto, который заставляет настраивать размеры элемента автоматически.

Как создать контейнер в Docker

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

java - Как мне создать контейнер в constraintlayout, чтобы я мог установить фон?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
  3. Вакансии Программирование и связанные с ним технические возможности карьерного роста
  4. Талант Нанимайте технических специалистов и создавайте свой бренд работодателя
.Учебное пособие по

: создание многоконтейнерного приложения - Служба приложений Azure

  • 11 минут на чтение

В этой статье

Примечание

Мультиконтейнер находится на стадии предварительного просмотра.

Веб-приложение

для контейнеров предоставляет гибкий способ использования образов Docker.В этом руководстве вы узнаете, как создать многоконтейнерное приложение с помощью WordPress и MySQL. Вы завершите это руководство в Cloud Shell, но вы также можете запускать эти команды локально с помощью инструмента командной строки Azure CLI (2.0.32 или более поздней версии).

Из этого руководства вы узнаете, как:

  • Преобразование конфигурации Docker Compose для работы с веб-приложением для контейнеров
  • Развертывание многоконтейнерного приложения в Azure
  • Добавить настройки приложения
  • Используйте постоянное хранилище для ваших контейнеров
  • Подключение к базе данных Azure для MySQL
  • Устранение ошибок

Если у вас нет подписки Azure, перед началом работы создайте бесплатную учетную запись.

Предварительные требования

Для выполнения этого руководства вам понадобится опыт работы с Docker Compose.

Скачать образец

В этом руководстве вы используете файл создания из Docker, но вы измените его, включив в него базу данных Azure для MySQL, постоянное хранилище и Redis. Файл конфигурации можно найти в образцах Azure. Для получения информации о поддерживаемых параметрах конфигурации см. Параметры Docker Compose.

  версия: '3.3' Сервисы: db: изображение: mysql: 5.7 объемы: - db_data: / var / lib / mysql перезапуск: всегда Окружающая среда: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: зависит от: - дб изображение: wordpress: последний порты: - «8000: 80» перезапуск: всегда Окружающая среда: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress объемы: db_data:  

В Cloud Shell создайте каталог с учебными пособиями, а затем перейдите в него.

  mkdir руководство cd учебник  

Затем выполните следующую команду, чтобы клонировать репозиторий примера приложения в каталог с учебником. Затем перейдите в каталог multicontainerwordpress .

  git clone https://github.com/Azure-Samples/multicontainerwordpress cd многоконтейнер wordpress  

Создать группу ресурсов

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

В Cloud Shell создайте группу ресурсов с помощью команды az group create . В следующем примере создается группа ресурсов с именем myResourceGroup в расположении South Central US . Чтобы просмотреть все поддерживаемые расположения для службы приложений в Linux на уровне Standard , выполните команду az appservice list-locations --sku S1 --linux-worker-enabled .

  az group create --name myResourceGroup --location "South Central US"  

Обычно вы создаете свою группу ресурсов и ресурсы в ближайшем к вам регионе.

Когда команда завершится, выходные данные JSON покажут вам свойства группы ресурсов.

Создание плана службы приложений Azure

В Cloud Shell создайте план службы приложений в группе ресурсов с помощью команды az appservice plan create .

В следующем примере создается план службы приложений с именем myAppServicePlan на ценовом уровне Standard ( --sku S1 ) и в контейнере Linux ( --is-linux ).

  az appservice plan create --name myAppServicePlan --resource-group myResourceGroup --sku S1 --is-linux  

После создания плана службы приложений Cloud Shell отображает информацию, подобную следующему примеру:

 { "adminSiteName": ноль, "appServicePlanName": "myAppServicePlan", "geoRegion": "Центрально-южная часть США", "hostingEnvironmentProfile": null, «id»: «/subscriptions/0000-0000/resourceGroups/myResourceGroup/providers/Microsoft.Web/serverfarms/myAppServicePlan», "kind": "linux", "location": "Центрально-южная часть США", "maximumNumberOfWorkers": 1, "name": "myAppServicePlan", <Данные JSON удалены для краткости.> "targetWorkerSizeId": 0, "type": "Microsoft.Web / serverfarms", "workerTierName": нуль } 

Docker Compose с контейнерами WordPress и MySQL

Создание приложения Docker Compose

В облачной оболочке создайте многоконтейнерное веб-приложение в плане службы приложений myAppServicePlan с помощью команды az webapp create. Не забудьте заменить на уникальное имя приложения.

  az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name  --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml  

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

 { "additionalProperties": {}, "availabilityState": "Нормальный", "clientAffinityEnabled": true, "clientCertEnabled": ложь, "cloningInfo": нуль, "containerSize": 0, "dailyMemoryTimeQuota": 0, "defaultHostName": "<имя-приложения> .azurewebsites.net", "включен": правда, <Данные JSON удалены для краткости. > } 

Перейдите в приложение

Перейдите к развернутому приложению по адресу ( http: // .azurewebsites.net ). Загрузка приложения может занять несколько минут. Если вы получили сообщение об ошибке, подождите еще несколько минут, а затем обновите браузер. Если у вас возникли проблемы и вы хотите устранить их, просмотрите журналы контейнеров.

Поздравляем, , вы создали многоконтейнерное приложение в веб-приложении для контейнеров. Затем вы настроите свое приложение для использования базы данных Azure для MySQL. Пока не устанавливайте WordPress.

Подключиться к производственной базе данных

Не рекомендуется использовать контейнеры базы данных в производственной среде.Локальные контейнеры не масштабируются. Вместо этого вы будете использовать базу данных Azure для MySQL, которую можно масштабировать.

Создание базы данных Azure для сервера MySQL

Создайте базу данных Azure для сервера MySQL с помощью команды az mysql server create .

В следующей команде замените имя своего сервера MySQL там, где вы видите заполнитель (допустимые символы: a-z , 0-9 и -). Это имя является частью имени хоста сервера MySQL ( .database.windows.net ), он должен быть глобально уникальным.

  az mysql server create --resource-group myResourceGroup --name  --location "South Central US" --admin-user adminuser --admin-password My5up3rStr0ngPaSw0rd! --sku-name B_Gen4_1 - версия 5.7  

Создание сервера может занять несколько минут. При создании сервера MySQL Cloud Shell показывает информацию, подобную следующему примеру:

 { "administratorLogin": "adminuser", "administratorLoginPassword": null, "fullQualifiedDomainName": "<имя-сервера-mysql>.database.windows.net ", «id»: «/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.DBforMySQL/servers/ », "location": "southcentralus", "имя": "<имя-сервера-mysql>", "resourceGroup": "myResourceGroup", ... } 

Настроить брандмауэр сервера

Создайте правило брандмауэра для вашего сервера MySQL, чтобы разрешить клиентские подключения, с помощью команды az mysql server firewall-rule create . Если и начальный, и конечный IP-адреса установлены на 0.0.0.0, брандмауэр открывается только для других ресурсов Azure.

  az mysql server firewall-rule create --name allAzureIPs --server  --resource-group myResourceGroup --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0  

Создать базу данных WordPress

  az mysql db create --resource-group myResourceGroup --server-name  --name wordpress  

Когда база данных создана, Cloud Shell отображает информацию, подобную следующему примеру:

 { "additionalProperties": {}, "кодировка": "latin1", "сопоставление": "latin1_swedish_ci", «id»: «/ subscriptions / 12db1644-4b12-4cab-ba54-8ba2f2822c1f / resourceGroups / myResourceGroup / Provider / Microsoft.DBforMySQL / servers /  / databases / wordpress ", "имя": "wordpress", "resourceGroup": "myResourceGroup", "тип": "Microsoft.DBforMySQL / серверы / базы данных" } 

Настроить переменные базы данных в WordPress

Чтобы подключить приложение WordPress к этому новому серверу MySQL, вы настроите несколько переменных среды для WordPress, включая путь SSL CA, определенный в MYSQL_SSL_CA . Корень Baltimore CyberTrust от DigiCert представлен на пользовательском изображении ниже.

Чтобы внести эти изменения, используйте команду az webapp config appsettings set в Cloud Shell. Настройки приложения чувствительны к регистру и разделяются пробелами.

  az webapp config набор настроек приложения --resource-group myResourceGroup --name  --settings WORDPRESS_DB_HOST = " .mysql.database.azure.com" WORDPRESS_DB_USER = "adminuser @  "WORDPRESS_DB_PASSWORD =" My5up3rStr0ngPaSw0rd! " WORDPRESS_DB_NAME = "wordpress" MYSQL_SSL_CA = "BaltimoreCyberTrustroot.crt.pem "  

После создания настройки приложения Cloud Shell отображает информацию, подобную следующему примеру:

 [ { "name": "WORDPRESS_DB_HOST", "slotSetting": ложь, "значение": "<имя-сервера-mysql> .mysql.database.azure.com" }, { "имя": "WORDPRESS_DB_USER", "slotSetting": ложь, "значение": "adminuser @ " }, { "name": "WORDPRESS_DB_NAME", "slotSetting": ложь, "значение": "wordpress" }, { "name": "WORDPRESS_DB_PASSWORD", "slotSetting": ложь, "value": "My5up3rStr0ngPaSw0rd!" }, { "name": "MYSQL_SSL_CA", "slotSetting": ложь, "value": "BaltimoreCyberTrustroot.crt.pem " } ] 

Дополнительные сведения о переменных среды см. В разделе Настройка переменных среды.

Использовать собственный образ для MySQL SSL и других конфигураций

По умолчанию база данных Azure для MySQL использует SSL. WordPress требует дополнительной настройки для использования SSL с MySQL. Официальный образ WordPress не предоставляет дополнительную конфигурацию, но для вашего удобства подготовлен собственный образ. На практике вы можете внести желаемые изменения в собственное изображение.

Пользовательский образ основан на «официальном образе» WordPress от Docker Hub. В этот настраиваемый образ базы данных Azure для MySQL были внесены следующие изменения:

В Redis были внесены следующие изменения (будут использоваться в следующем разделе):

Чтобы использовать настраиваемый образ, обновите файл docker-compose-wordpress.yml. В Cloud Shell введите nano docker-compose-wordpress.yml , чтобы открыть текстовый редактор nano. Измените образ : wordpress , чтобы использовать образ : microsoft / multicontainerwordpress .X для выхода.

Обновить приложение с новой конфигурацией

В Cloud Shell перенастройте многоконтейнерное веб-приложение с помощью команды az webapp config container set. Не забудьте заменить на имя созданного ранее веб-приложения.

  az webapp config набор контейнеров --resource-group myResourceGroup --name  --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml  

После перенастройки приложения Cloud Shell показывает информацию, подобную приведенной в следующем примере:

 [ { "name": "DOCKER_CUSTOM_IMAGE_NAME", "Значение": "COMPOSE | dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICB3b3JkcHJlc3M6CiAgICAgaW1hZ2U6IG1zYW5nYXB1L3dvcmRwcmVzcwogICAgIHBvcnRzOgogICAgICAgLSAiODAwMDo4MCIKICAgICByZXN0YXJ0OiBhbHdheXM =" } ] 

Перейдите в приложение

Перейдите к развернутому приложению по адресу ( http: // .azurewebsites.net ). Приложение теперь использует базу данных Azure для MySQL.

Добавить постоянное хранилище

Ваш мультиконтейнер теперь работает в веб-приложении для контейнеров. Однако, если вы установите WordPress сейчас и перезапустите приложение позже, вы обнаружите, что ваша установка WordPress исчезла. Это происходит потому, что ваша конфигурация Docker Compose в настоящее время указывает на место хранения внутри вашего контейнера. Файлы, установленные в ваш контейнер, не сохраняются после перезапуска приложения.В этом разделе вы добавите постоянное хранилище в свой контейнер WordPress.

Настроить переменные среды

Чтобы использовать постоянное хранилище, вы включите этот параметр в службе приложений. Чтобы внести это изменение, используйте команду az webapp config appsettings set в Cloud Shell. Настройки приложения чувствительны к регистру и разделяются пробелами.

  az webapp config набор настроек приложения --resource-group myResourceGroup --name  --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE = TRUE  

После создания настройки приложения Cloud Shell отображает информацию, подобную следующему примеру:

 [ <Данные JSON удалены для краткости.> { "name": "WORDPRESS_DB_NAME", "slotSetting": ложь, "значение": "wordpress" }, { "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", "slotSetting": ложь, "значение": "ИСТИНА" } ] 

Изменить файл конфигурации

В Cloud Shell введите nano docker-compose-wordpress.yml , чтобы открыть текстовый редактор nano.

Параметр тома отображает файловую систему в каталог внутри контейнера. $ {WEBAPP_STORAGE_HOME} - это переменная среды в службе приложений, которая сопоставлена ​​с постоянным хранилищем для вашего приложения.Вы будете использовать эту переменную среды в параметре томов, чтобы файлы WordPress устанавливались в постоянное хранилище, а не в контейнер. Внесите в файл следующие изменения:

В разделе wordpress добавьте параметр томов , чтобы он выглядел следующим образом:

  версия: '3.3' Сервисы: wordpress: изображение: microsoft / multicontainerwordpress объемы: - $ {WEBAPP_STORAGE_HOME} / site / wwwroot: / var / www / html порты: - «8000: 80» перезапуск: всегда  

Обновить приложение с новой конфигурацией

В Cloud Shell перенастройте многоконтейнерное веб-приложение с помощью команды az webapp config container set.Не забудьте заменить на уникальное имя приложения.

  az webapp config набор контейнеров --resource-group myResourceGroup --name  --multicontainer-config-type compose --multicontainer-config-file docker-compose-wordpress.yml  

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

 [ { "name": "WEBSITES_ENABLE_APP_SERVICE_STORAGE", "slotSetting": ложь, "значение": "ИСТИНА" }, { "name": "DOCKER_CUSTOM_IMAGE_NAME", "Значение": "COMPOSE | dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo =" } ] 

Перейдите в приложение

Перейдите к развернутому приложению по адресу ( http: // .azurewebsites.net ).

Контейнер WordPress теперь использует базу данных Azure для MySQL и постоянное хранилище.

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

«Официальный образ» WordPress не включает зависимости для Redis. Эти зависимости и дополнительная конфигурация, необходимые для использования Redis с WordPress, подготовлены для вас в этом настраиваемом образе. На практике вы можете внести желаемые изменения в собственное изображение.

Пользовательский образ основан на «официальном образе» WordPress от Docker Hub.В этот пользовательский образ для Redis были внесены следующие изменения:

Добавьте контейнер redis в конец файла конфигурации, чтобы он выглядел как в следующем примере:

  версия: '3.3' Сервисы: wordpress: изображение: microsoft / multicontainerwordpress порты: - «8000: 80» перезапуск: всегда Redis: изображение: redis: 3-alpine перезапуск: всегда  

Настроить переменные среды

Чтобы использовать Redis, вы включите этот параметр WP_REDIS_HOST в службе приложений.Это , требуемый параметр для WordPress для связи с хостом Redis. Чтобы внести это изменение, используйте команду az webapp config appsettings set в Cloud Shell. Настройки приложения чувствительны к регистру и разделяются пробелами.

  az webapp config набор настроек приложения --resource-group myResourceGroup --name  --settings WP_REDIS_HOST = "redis"  

После создания настройки приложения Cloud Shell отображает информацию, подобную следующему примеру:

 [ <Данные JSON удалены для краткости.> { "имя": "WORDPRESS_DB_USER", "slotSetting": ложь, "значение": "adminuser @ " }, { "name": "WP_REDIS_HOST", "slotSetting": ложь, "значение": "Redis" } ] 

Обновить приложение с новой конфигурацией

В Cloud Shell перенастройте многоконтейнерное веб-приложение с помощью команды az webapp config container set. Не забудьте заменить на уникальное имя приложения.

  az webapp config набор контейнеров --resource-group myResourceGroup --name  --multicontainer-config-type compose --multicontainer-config-file compose-wordpress.yml  

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

 [ { "name": "DOCKER_CUSTOM_IMAGE_NAME", "Значение": "COMPOSE | dmVyc2lvbjogJzMuMycKCnNlcnZpY2VzOgogICBteXNxbDoKICAgICBpbWFnZTogbXlzcWw6NS43CiAgICAgdm9sdW1lczoKICAgICAgIC0gZGJfZGF0YTovdmFyL2xpYi9teXNxbAogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgTVlTUUxfUk9PVF9QQVNTV09SRDogZXhhbXBsZXBhc3MKCiAgIHdvcmRwcmVzczoKICAgICBkZXBlbmRzX29uOgogICAgICAgLSBteXNxbAogICAgIGltYWdlOiB3b3JkcHJlc3M6bGF0ZXN0CiAgICAgcG9ydHM6CiAgICAgICAtICI4MDAwOjgwIgogICAgIHJlc3RhcnQ6IGFsd2F5cwogICAgIGVudmlyb25tZW50OgogICAgICAgV09SRFBSRVNTX0RCX1BBU1NXT1JEOiBleGFtcGxlcGFzcwp2b2x1bWVzOgogICAgZGJfZGF0YTo =" } ] 

Перейдите в приложение

Перейдите к развернутому приложению по адресу ( http: // .azurewebsites.net ).

Выполните шаги и установите WordPress.

Подключите WordPress к Redis

Войдите в админку WordPress. На левой панели навигации выберите Плагины , а затем выберите Установленные плагины .

Показать все плагины здесь

На странице плагинов найдите Redis Object Cache и нажмите Активировать .

Щелкните Настройки .

Нажмите кнопку Включить кэш объектов .

WordPress подключается к серверу Redis. Статус соединения отображается на той же странице.

Поздравляем, , вы подключили WordPress к Redis. Готовое к работе приложение теперь использует базу данных Azure для MySQL, постоянное хранилище и Redis . Теперь вы можете масштабировать свой план службы приложений до нескольких экземпляров.

Найти журналы контейнера Docker

Если у вас возникнут проблемы с использованием нескольких контейнеров, вы можете получить доступ к журналам контейнеров, перейдя по адресу: https: // .scm.azurewebsites.net/api/logs/docker .

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

 [ { "machineName": "RD00XYZYZE567A", "lastUpdated": "2018-05-10T04: 11: 45Z", «размер»: 25125, "href": "https: //  .scm.azurewebsites.net / api / vfs / LogFiles / 2018_05_10_RD00XYZYZE567A_docker.log", "путь": "/ home / LogFiles / 2018_05_10_RD00XYZYZE567A_docker.log" } ] 

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

Очистить развертывание

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

  az group delete --name myResourceGroup  

Следующие шаги

Из этого урока вы узнали, как:

  • Преобразование конфигурации Docker Compose для работы с веб-приложением для контейнеров
  • Развертывание многоконтейнерного приложения в Azure
  • Добавить настройки приложения
  • Используйте постоянное хранилище для ваших контейнеров
  • Подключение к базе данных Azure для MySQL
  • Устранение ошибок

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

Или посмотрите другие ресурсы:

.

Как создать контейнерный элемент управления

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Смотрите также

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Одноклассники
Вы можете оставить комментарий, или ссылку на Ваш сайт.

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