По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В продолжение статьи про Docker, сегодня мы расскажем про Dockerfile — скрипт, который позволяет автоматизировать процесс построения контейнеров — шаг за шагом, используя при этом base образ. Докерфайлы и синтаксис для их создания Как уже было сказано выше, каждый Докерфайл — по сути скрипт, который автоматически выполняет определенные действия или команды в base образе, для формирования нового образа. Все подобные файлы начинаются с обозначения FROM — также как и процесс построения нового контейнера, далее следуют различные методы, команды, аргументы или условия, после применения которых получится Docker контейнер. Для начала, быстренько пройдемся по синтаксису — он, кстати говоря, крайне простой, с командами, говорящими самими за себя. В Докер файлах содержится два типа основных блоков — комментарии и команды с аргументами. Причем для всех команд подразумевается определенный порядок — подробнее об этом ниже. Ниже типичный пример синтаксиса, где первая строка является комментарием, а вторая — командой. # Print «Hello from Merionet!» RUN echo «Hello from Merionet!!» Перед тем, как переходить к собственно написанию собственно Докерфайла, сначала разберем все возможные команды. Все команды в Докерфайлах принято указывать заглавными буквами — к примеру RUN, CMD и т.д. Команда ADD — данная команда берет два аргумента, путь откуда скопировать файл и путь куда скопировать файлы в собственную файловую систему контейнера. Если же source путем является URL (т.е адрес веб-страницы) — то вся страница будет скачена и помещена в контейнер. # Синтаксис команды: ADD [исходный путь или URL] [путь назначения] ADD /my_merionet_app /my_merionet_app Команда CMD — довольно таки похожая на команду RUN, используется для выполнения определенных программ, но, в отличие от RUN данная команда обычно применяется для запуска/инициации приложений или команд уже после их установки с помощью RUN в момент построения контейнера. # Синтаксис команды: CMD %приложение% «аргумент», «аргумент», .. CMD «echo» «Hello from Merionet!». Команда ENTRYPOINT устанавливает конкретное приложение по умолчанию, которое используется каждый раз в момент построения контейнера с помощью образа. К примеру, если вы установили определенное приложение внутри образа и вы собираетесь использовать данный образ только для этого приложения, вы можете указать это с помощью ENTRYPOINT, и каждый раз, после создания контейнера из образа, ваше приложение будет воспринимать команду CMD, к примеру. То есть не будет нужды указывать конкретное приложение, необходимо будет только указать аргументы. #Синтаксис команды: ENTRYPOINT %приложение% «аргумент» # Учтите, что аргументы опциональны — они могут быть предоставлены командой CMD или #во время создания контейнера. ENTRYPOINT echo #Синтаксис команды совместно с CMD: CMD «Hello from Merionet!» ENTRYPOINT echo Команда ENV используется для установки переменных среды (одной или многих). Данные переменные выглядят следующим образом «ключ = значение» и они доступны внутри контейнера скриптам и различным приложениям. Данный функционал Докера, по сути, очень сильно увеличивает гибкость в плане различных сценариев запуска приложений. # Синтаксис команды: ENV %ключ% %значение% ENV BASH /bin/bash Команда EXPOSE используется для привязки определенного порта для реализации сетевой связности между процессом внутри контейнера и внешним миром — хостом. # Синтаксис команды: EXPOSE %номер_порта% EXPOSE 8080 Команда FROM — данную команду можно назвать одной из самых необходимых при создании Докерфайла. Она определяет базовый образ для начала процесса построения контейнера. Это может быть любой образ, в том числе и созданные вами до этого. Если указанный вами образ не найден на хосте, Докер попытается найти и скачать его. Данная команда в Докерфайле всегда должна быть указана первой. # Синтаксис команды: FROM %название_образа% FROM centos Команда MAINTAINER — данная команда не является исполняемой, и просто определяет значение поля автора образа. Лучше всего ее указывать сразу после команды FROM. # Синтаксис команды: MAINTAINER %ваше_имя% MAINTAINER MerionetNetworks Команда RUN - является основной командой для исполнения команд при написании Докерфайла. Она берет команду как аргумент и запускает ее из образа. В отличие от CMD данная команда используется для построения образа (можно запустить несколько RUN подряд, в отличие от CMD). # Синтаксис команды: RUN %имя_команды% RUN yum install -y wget Команда USER — используется для установки UID или имени пользователя, которое будет использоваться в контейнере. # Синтаксис команды: USER %ID_пользователя% USER 751 Команда VOLUME — данная команда используется для организации доступа вашего контейнера к директории на хосте (тоже самое, что и монтирование директории) # Синтаксис команды: VOLUME [«/dir_1», «/dir2» ...] VOLUME [«/home»] Команда WORKDIR указывает директорию, из которой будет выполняться команда CMD. # Синтаксис команды: WORKDIR /путь WORKDIR ~/ Создание своего собственного образа для установки MongoDB Для начала создадим пустой файл и откроем его с помощью vim: vim Dockerfile Затем мы можем указать комментариями для чего данный Докерфайл будет использоваться и все такое — это не обязательно, но может быть полезно в дальнейшем. На всякий случай напомню — все комментарии начинаются с символа #. ######## # Dockerfile to build MongoDB container images # Based on Ubuntu ######## Далее, укажем базовый образ: FROM ubuntu Затем, укажем автора: MAINTAINER Merionet_Translation После чего обновим репозитории(данный шаг совершенно необязателен, учитывая, что мы не будем их использовать ) : RUN apt-get update После укажем команды и аргументы для скачивания MongoDB (установку проводим в соответствии с гайдом на официальном сайте): RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list RUN apt-get update RUN apt-get install -y mongodb-10gen RUN mkdir -p /data/db После чего укажем дефолтный порт для MongoDB: EXPOSE 27017 CMD [«--port 27017»] ENTRYPOINT usr/bin/mongod Вот как должен выглядеть у вас финальный файл — проверьте и, затем, можно сохранить изменения и закрыть файл: ######### # Dockerfile to build MongoDB container images # Based on Ubuntu ######### FROM ubuntu MAINTAINER Merionet_Translation RUN apt-get update RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 RUN echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | tee /etc/apt/sources.list.d/mongodb.list RUN apt-get update RUN apt-get install -y mongodb-10gen RUN mkdir -p /data/db EXPOSE 27017 CMD ["--port 27017"] ENTRYPOINT usr/bin/mongod Запуск контейнера Docker Итак, мы готовы создать наш первый MongoDB образ с помощью Docker! sudo docker build -t merionet_mongodb . -t и имя здесь используется для присваивания тэга образу. Для вывода всех возможных ключей введите sudo docker build —help, а точка в конце означает что Докерфайл находится в той же категории, из которой выполняется команда. Далее запускаем наш новый MongoDB в контейнере! sudo docker run -name MerionetMongoDB -t -i merionet_mongodb Ключ -name используется для присвоения простого имени контейнеру, в противном случае это будет довольно длинная цифро-буквенная комбинация. После запуска контейнера для того, чтобы вернуться в систему хоста нажмите CTRL+P, а затем CTRL+Q. Заключение Всем спасибо за внимание, теперь вы можете очень много экспериментировать с созданием Докерфайлов и ваших собственных образов, не бойтесь пробовать упростить привычные вам процессы установки приложений с помощью контейнеров — возможности крайне велики, и мы постараемся охватить их в следующих статьях.
img
Если Вы когда-либо звонили в службу технической поддержки большого провайдера или оператора, то наверняка сталкивались с ситуацией, когда автоответчик, приятным голосом, сообщает Вам что-то типа “В настоящий момент, все операторы заняты, пожалуйста, оставайтесь на линии, мы обязательно Вам ответим” и потом начинает играть приятная музыка, до тех пор, пока кто-нибудь на другом конце не освободится и не ответит Вам. По такому принципу работает любой современный Колл-центр (call-center). Дело в том, что иногда в компанию поступает так много входящих звонков, что сотрудники чисто физически не могут ответить на каждый из них. В этом случае в кол-центрах организуются очереди (queues) входящих звонков. В данной статье, мы рассмотрим принципы организации очередей на примере Asterisk и FreePBX 13. /p> Пошаговое видео Настройка Основными составляющими частями очередей являются: Входящие (Callers) - Входящие звонки, направляемые в очередь Агенты (Agents) - Операторы, которые отвечают на звонки из очереди Статика (Static)) –Настройка, при которой Агент не может покинуть очередь, будучи залогиненым Динамика (Dynamic) - Настройка, при которой Агент может входить и выходить из очереди самостоятельно Стратегия Звонков (Ring Strategy) - Стратегия обработки звонков, поступающих из очереди и их дальнейшего распределения между Агентами Музыка на удержании (MoH) - Музыка или объявление, которое будет проигрываться в трубке у ожидающих в очереди абонентов Оповещения (Announcements) - Голосовое оповещение, которое проигрывается в трубке у членов очереди (Агентов или ожидающих абонентов). Например, периодически, ожидающий абонент будет слышать, сколько минут ему осталось ждать: “Оператор ответит Вам через 5/4/3/2 минут” Ниже будет показано, как создать очередь во FreePBX 13. Из главного меню нашей IP-АТС, необходимо перейти по следующему пути Applications -> Queues -> Add Queue Откроется достаточно обширное меню General Settings, в котором настраиваются составляющие элементы очереди Кратко опишем каждую опцию Queue Number-Номер очереди. Используется для перевода входящих в очередь или Агентами, для того чтобы попасть в очередь Queue Name - Имя очереди. Queue Password - Пароль для очереди. Используется, когда нужно ограничить доступ в очередь каким-либо агентам Generate Device Hints-Опция, позволяющая генерировать подсказки и даилпланы для телефонных устройств Агентов Call Confirm- Опция, позволяющая Агенту подтверждать вызов, прежде чем принимать его Call Confirm Announce - Сообщение, которое услышит Агент, когда подтвердит, что готов принять вызов из очереди. Голосовые сообщения можно добавлять самостоятельно через System Recordings CID Name Prefix - Префикс для входящих звонков в очереди, который может подсказывать, откуда пришёл вызов. Например: Tech_sup1: <номер> Wait Time Prefix - Префикс, показывающий, сколько времени абонент ожидает ответа в очереди Alert Info- Информация для разных SIP устройств Restrict Dynamic Agents- Ограничивает доступ в очередь всем, кроме Агентов указанных как dynamic в Queue Agents Agent Restrictions - Специфические настройки доступа и обработки вызовов Агентами Ring Strategy - Настройки стратегий распределения вызовов из очереди между Агентами Autofill - Настройки распределения звонков, в случае, когда доступно несколько Агентов Skip Busy Agents- Настройки обхода занятых Агентов Queue Weight- Приоритет очереди. Необходим, если Агент принадлежит нескольким очередям Music on Hold Class - Музыка на удержании. Можно добавлять самостоятельно через System Recordings Join Announcement -Сообщение, которое проигрывается, прежде чем вызов поступает в очередь Call Recording - Настройки записи звонков в очереди и их формата Mark calls answered elsewhere- Помечает не отвеченные вызовы Fail Over Destination - Куда отправить вызов, если очередь переполнена, истекло время и так далее. Во вкладке Queue Agents можно настроить динамических или статических Агентов, которые будут обрабатывать звонки данной очереди Во вкладке Timing&Agent Options настраиваются максимальное время ожидания абонента в очереди, тайм-ауты Агентов, время повторной попытки перевода вызова Агенту, голосовое сообщение, которое проигрывается перед тем, как Агент ответит на звонок Вкладка Capacity Options позволяет настроить емкость очереди, количество абонентов, которые могут находиться в очереди, а также условия превышения лимита абонентов Во вкладке Caller Announcements настраивается периодичность проигрывания сообщений абоненту, например сколько минут ему осталось ждать: “Оператор ответит Вам через 5/4/3/2 минут”, а также настройка объявления ожидающему абоненту его позиции в очереди Вкладка Advanced Options предназначена для настройки уровня обслуживания и фильтрации различных параметров. Reset Queue Stats сбрасывает всю статистическую информацию данной очереди Other Options настройка доступности очереди для кросс-платформенных решений, таких как iSimphony
img
Сетевые пользователи часто сталкиваются с необходимостью наличия статического общедоступного IP-адреса, например, при настройке веб-сервера, лаборатории с доступом через Интернет или даже при настройке почтового сервера. В таких случаях приходиться либо покупать новый интернет-пакет, включающий общедоступные IP-адреса, либо покупать новый пул статических общедоступных адресов у провайдера. Однако начиная с Сisco IOS 12.4 и далее на маршрутизаторах Cisco можно настроить протокол DDNS (Dynamic DNS), который позволяет обновлять запись DNS при изменении IP – адреса маршрутизатора-следовательно, требование к статическому IP-адреу смягчается. На приведенной ниже диаграмме показано функционирование службы DDNS: Ниже приведено краткое описание работы DDNS с Cisco IOS: Для регистрации у провайдера DDNS необходимо создать учетную запись. Настройте Интернет-маршрутизатор Cisco для работы в качестве клиента DDNS. Поставщик DNS создает уникальное доменное имя, указывающее на текущий динамический IP-адрес на Интернет-маршрутизаторе Cisco. При перезагрузке интернет-маршрутизатора или изменении динамического IP-адреса он получает новый IP-адрес от провайдера. Клиент DDNS уведомляет сервер DDNS, и запись DNS обновляется с новым общедоступным IP-адресом. Когда Интернет-пользователь хочет получить доступ к «test.dyndns.org», он отправляет DNS-запрос. DDNS отвечает на запрос DNS, предоставляя IP-адрес 100.100.100.1 Интернет-маршрутизатора. Как только пользователь получает динамический общедоступный IP-адрес интернет-маршрутизатора (100.100.100.1), пользователь может связываться с интернет-маршрутизатором через его вновь назначенный IP-адрес. Ниже приведена конфигурация маршрутизатора Cisco для поддержки службы DDNS. Шаг № 1 - Включите поиск DNS и настройте сервер IP-имен HQ# configure terminalHQ(config)# ip domain-lookup HQ(config)# ip name-server 4.4.4.4 HQ(config)# ip name-server 8.8.8.8 Шаг № 2 - Затем определите метод обновления DDNS: HQ(config)# ip ddns update method dyndns Шаг № 3 - В этом сценарии мы будем использовать HTTP в качестве метода обновления в конфигурации, чтобы указать URL-адрес, который маршрутизатор будет использовать для связи с поставщиком DDNS с новым публичным динамическим IP - адресом при изменении. HQ(DDNS-update-method)# HTTP add http://username:password@members.dyndns.org/nic/update?system=dyndns&hostname=<h>&myip=<a> Шаг № 4 - Далее мы устанавливаем интервал обновления, чтобы гарантировать, что FQDN обновляется как можно чаще. Конфигурация параметров интервала обновляется до 1 дня, 0 часов, 0 минут и 0 секунд. HQ(DDNS-HTTP)# interval maximum 1 0 0 0 Шаг № 5 - Наконец, установите FQDN, которое будет обновляться, и включите службу DDNS на общедоступном интерфейсе (в этом сценарии будет использоваться Dialer0): HQ(DDNS-update-method)# interface dialer0 HQ(config-if)# ip ddns update hostname test.dyndns.org HQ(config-if)# ip ddns update dyndns Для отладки DDNS введите следующие команды HQ#debug ip ddns update
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59