По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Что это вообще такое? Docker Compose является инструментом для определения и запуска контейнерных приложений. С Compose вы получаете возможность настраивать службы используя файл YAML. С помощью одной команды Compose вы создаете и запускаете все службы в соответствии с вашей конфигурацией. Установка начинается с создания каталога проекта: $ mkdir composetest $ cd composetest Создайте файл под названием app.py и вставьте в него следующие данные: import time import redis from flask import Flask app = Flask(__name__) cache = redis.Redis(host='redis', port=6379) def get_hit_count(): retries = 5 while True: try: return cache.incr('hits') except redis.exceptions.ConnectionError as exc: if retries == 0: raise exc retries -= 1 time.sleep(0.5) @app.route('/') def hello(): count = get_hit_count() return 'Hello World! I have been seen {} times. '.format(count) В нашем случае название хоста - redis, который использует порт 6379. Создайте файл под названием needs.txt в каталоге вашего проекта и вставьте его в: flask Redis Теперь следует написать код для файла Dockerfile, содержащий все необходимые переменные для среды разработки. В каталоге вашего проекта создайте файл с именем Dockerfile (файл будет определять среду приложения) и вставьте следующее содержимое: FROM python:3.7-alpine WORKDIR /code ENV FLASK_APP app.py ENV FLASK_RUN_HOST 0.0.0.0 RUN apk add --no-cache gcc musl-dev linux-headers COPY requirements.txt requirements.txt RUN pip install -r requirements.txt COPY . . CMD ["flask", "run"] Определение сервисов осуществляется при создании файла с именем docker-compose.yml в каталоге вашего проекта со следующей информацией: version: '3' services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine" На основании содержания файла происходит запуск двух сервисов: Web и Redis, а в дальнейшем вы можете вносить в этот файл различные БД и иную важную информацию. C помощью команды Compose создайте ваше приложение, после чего из каталога проекта запустите приложение, запустив docker-compose. Вот так: $ docker-compose up Creating network "composetest_default" with the default driver Creating composetest_web_1 ... Creating composetest_redis_1 ... Creating composetest_web_1 Creating composetest_redis_1 ... done Attaching to composetest_web_1, composetest_redis_1 web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) redis_1 | 1:C 17 Aug 22:11:10.480 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo redis_1 | 1:C 17 Aug 22:11:10.480 # Redis version=4.0.1, bits=64, commit=00000000, modified=0, pid=1, just started redis_1 | 1:C 17 Aug 22:11:10.480 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf web_1 | * Restarting with stat redis_1 | 1:M 17 Aug 22:11:10.483 * Running mode=standalone, port=6379. redis_1 | 1:M 17 Aug 22:11:10.483 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. web_1 | * Debugger is active! redis_1 | 1:M 17 Aug 22:11:10.483 # Server initialized redis_1 | 1:M 17 Aug 22:11:10.483 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled. web_1 | * Debugger PIN: 330-787-903 redis_1 | 1:M 17 Aug 22:11:10.483 * Ready to accept connections Compose извлекает образ Redis, создавая образ для вашего приложения и запускает выбранные службы. В этом случае код копируется в образ во время сборки. Как вам такое? Теперь попробуйте ввести http://localhost:5000/ в браузере, чтобы чекнуть запущенное приложение. Если вы используете Docker для Linux, Docker Desktop для Mac или Docker Desktop для Windows, то теперь веб-приложение должно "смотреть" на порт 5000 на хосте Docker. Введите в своем веб-браузере адрес http://localhost:5000, чтобы увидеть сообщение Hello World. Если не сработает, вы также можете попробовать зайти на http://127.0.0.1:5000. Если вы используете Docker Machine на Mac или Windows, используйте ip MACHINE_VM docker-machine для получения IP-адреса вашего хоста Docker. Затем откройте http://MACHINE_VM_IP:5000 в браузере. Вы должны увидеть сообщение в своем браузере: Hello World! I have been seen 1 times. Переключитесь на другое окно терминала и введите docker image ls, чтобы вывести список локальных образов/контейнеров. Вывод на этом этапе должен показывать redis и web. $ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE composetest_web latest e2c21aa48cc1 4 minutes ago 93.8MB python 3.4-alpine 84e6077c7ab6 7 days ago 82.5MB redis alpine 9d8fa9aa0e5b 3 weeks ago 27.5MB Важно: Вы можете просматривать запущенные контейнеры с помощью Docker Inspect Tag или ID Запустите docker-compose из каталога вашего проекта во втором терминале, либо нажмите CTRL + C в исходном терминале, где приложение уже запущено и отредактируйте файл Compose. Отредактируйте docker-compose.yml в каталоге вашего проекта для внесения той или иной правки в веб-службе version: '3' services: web: build: . ports: - "5000:5000" volumes: - .:/code environment: FLASK_ENV: development redis: image: "redis:alpine" Новый ключ редактирует каталог проекта на хосте внутри контейнера, что позволяет изменять код без необходимости перестраивать весь образ. Ключ среды устанавливает переменную FLASK_ENV, которая сообщает о запуске в режиме разработки и перезагрузке кода при изменении. Важно: этот режим должен использоваться только при разработке. В каталоге проекта введите docker-compose up, чтобы создать приложение с обновленным файлом Compose, и запустите его. $ docker-compose up Creating network "composetest_default" with the default driver Creating composetest_web_1 ... Creating composetest_redis_1 ... Creating composetest_web_1 Creating composetest_redis_1 ... done Attaching to composetest_web_1, composetest_redis_1 web_1 | * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) … Поскольку код приложения теперь добавляется в контейнер с помощью тома, вы можете вносить изменения в его код и мгновенно просматривать изменения без необходимости перестраивать образ. Измените сообщение в app.py и сохраните его: Hello from Docker!: return 'Hello from Docker! I have been seen {} times. '.format(count) Обновите результат в вашем браузере (нажмите F5 или Ctrl + F5) . Приветствие должно быть обновлено, а счетчик должен увеличиваться. Вы можете поэкспериментировать с другими командами. Если вы хотите запускать свои службы в фоновом режиме, вы можете сделать следующее: docker-compose up and use docker-compose ps to see what is currently running: $ docker-compose up -d Starting composetest_redis_1... Starting composetest_web_1... $ docker-compose ps Name Command State Ports ------------------------------------------------------------------- composetest_redis_1 /usr/local/bin/run Up composetest_web_1 /bin/sh -c python app.py Up 5000->5000/tcp Команда docker-compose run позволяет вам применять одноразовые команды к вашим сервисов. Например, чтобы увидеть, какие переменные среды доступны для веб-службы: $ docker-compose run web env Выполните команду docker-compose –help, чтобы увидеть весь список доступных команд. Если вы запустили Compose с помощью docker-compose up -d, то нужно будет остановить ваши службы после работы с ними, для этого поможет команда ниже:$ docker-compose stop Если хотите полностью уничтожить контейнер, используйте команду down.
img
Пинг. Что может быть проще? Стандартная операция отправки эхо-запроса ICMP (Internet Control Message Protocol) для проверки доступности. Пишете в командной строке ping, затем адрес и готово! Действительно, проще некуда. А что если нам наоборот, нужно что-то посложнее? Для этого в Linux вам поможет утилита fping. /p> Что такое fping? Fping – это инструмент, аналогичный утилите ping, но гораздо более производительный в случае, когда нам нужно сделать пинг до нескольких узлов. С fping можно использовать файлы со списком адресов или даже указывать целые диапазоны сетей с маской. Установка В большинстве дистрибутивов Linux пакет fping можно установить из репозиториев: # sudo apt install fping [ДляDebian/Ubuntu] # sudo yum install fping [Для CentOS/RHEL] # sudo dnf install fping [Для Fedora 22+] # sudo pacman -S fping [Для Arch Linux] Если нужно установить из исходного пакета, то используются следующие команды: $ wget https://fping.org/dist/fping-4.0.tar.gz $ tar -xvf fping-4.0.tar.gz $ cd fping-4.0/ $ ./configure $ make && make install Готово! Теперь посмотрим, что мы сможем сделать с помощью fping Пинг множества адресов Используйте команду fping, а затем через пробел укажите нужные IP адреса # fping 192.168.1.1 192.168.1. 192.168.1.3 192.168.1.1 is alive 192.168.1.1 is unreachable 192.168.1.3 is unreachable Пинг диапазона адресов Используйте ключи –s и –g, после которых укажите первый и последний адрес диапазона. # fping -s -g 192.168.0.1 192.168.0.9 192.168.0.1 is alive 192.168.0.2 is alive ICMP Host Unreachable from 192.168.0.2 for ICMP Echo sent to 192.168.0.3 ICMP Host Unreachable from 192.168.0.2 for ICMP Echo sent to 192.168.0.3 ICMP Host Unreachable from 192.168.0.2 for ICMP Echo sent to 192.168.0.3 ICMP Host Unreachable from 192.168.0.2 for ICMP Echo sent to 192.168.0.4 192.168.0.3 is unreachable 192.168.0.4 is unreachable 8 9 targets 2 alive 2 unreachable 0 unknown addresses 4 timeouts (waiting for response) 9 ICMP Echos sent 2 ICMP Echo Replies received 2 other ICMP received 0.10 ms (min round trip time) 0.21 ms (avg round trip time) 0.32 ms (max round trip time) 4.295 sec (elapsed real time) Пинг целой подсети Укажите маску подсети через слеш, чтобы пропинговать всю подсеть. Ключ –r 1 указывает на то, что будет одно повторение операции # fping -g -r 1 192.168.0.0/24 Пинг с адресами из файла Можно записать в файл список адресов (в нашем случае мы назвали его merionfping.txt), и зачитать из него адреса для пинга # fping < fping.txt 192.168.1.20 is alive 192.168.1.100 is alive
img
Дорогой друг! Ранее мы рассказывали про новинки FreePBX 14. Новые и интересные фичи безусловно не будут лишними. Ну что же, приступим теперь к обновлению FreePBX 13 версии до 14? Pre-work Рекомендуем перед началом работ сделать полный бэкап/снэпшот сервера, на котором будут производиться работы; Как и у любого пользователя FreePBX, у вас в Dashboard графической оболочки появилось следующее уведомление: Заманчивое название модуля. Переходим в консоль (подключаемся пол SSH) вашего сервера и даем простую команду: fwconsole ma downloadinstall versionupgrade Модуль будет установлен: Теперь возвращаемся в FreePBX. В правом верхнем углу нажимаем Apply Config. Далее, прыгаем по пути Admin → 13 to 14 Upgrade Tool и вот что мы увидим: Нажимаем на кнопку Check the requirements! и смотрим: система говорит, что у нас установлен FreePBX Distro и нам необходимо воспользоваться специальным скриптом для апгрейда. Что же, приступим к обновлению вручную. Обновление через CLI Перед началом работ есть определенные требования, такие как: Сервер с 64 - битной архитектурой; Как минимум 10 Гб свободного места; Стабильное интернет соединение; Если вы используете 32 – битную архитектуру, то проще всего воспользоваться FreePBX Conversion tool, сделав бэкап на 32 – битной системе, а восстановить его в системе 64 – бит с FreePBX 14. При попытке установки на 32 – битной системе процесс предупредит вас об этом: Устанавливаем нужный RPM: yum -y install http://package1.sangoma.net/distro-upgrade-1707-16.sng7.noarch.rpm После успешной установки RPM даем следующую команду: distro-upgrade И переходим в интерактивный режим: [root@freepbx ~]# distro-upgrade ?????????????????????????????????????????????? ? ? ? Sangoma 6 to 7 Upgrade Tool ? ? ? ? Distro Upgrade - Version 1707-2.sng7 ? ? Build Date: 2017-06-21 ? ? ? ?????????????????????????????????????????????? Checking prerequsites... Checking bitsize of machine [ ? ] - x86_64 Checking available disk space [ ? ] - 13G Available All prerequsites passed! Are you ready to upgrade your machine to SNG7? This process requires two reboots, and will download approximately 200mb of files before starting. There will be no interruption to service until this machine is rebooted. Download files required for upgrade [Yn]? Указываем y: Download files required for upgrade [Yn]? y ######### Starting setup upgrade on Tue Aug 22 17:39:08 MSK 2017 ######### ######### Creating upgrade repofile ######### ######### Installing needed packages ######### ######### Running preupgrade ######### ######### Running upgrade-tool ######### ######### Downloading sangoma-release rpm ######### ######### Updating packages.list ######### ######### Verified sangoma-release in package.list ######### ######### Reboot to finish this stage of the upgrade ######### ######### Finished setup upgrade on Tue Aug 22 17:44:12 MSK 2017 ######### Preparations complete! Please reboot your machine when convenient. This machine will install all the new and upgraded packages, and then reboot for a second time automatically. After the second reboot, it will then continue the upgrade process automatically. When the upgrade is complete, you will be presented with a standard login prompt. Важно! Данный процесс можно проводить в рабочее время параллельно с обслуживанием вызовов. Даунтайм подразумевается только далее, после перезагрузки. Перезагружаем сервер командой reboot. При загрузке, у вас будет автоматически выбрана опция System Upgrade, как показано ниже. Если нет, то выберите эту опцию вручную стрелками на клавиатуре: После этого начнется процесс обновления. Длительность этого процесса напрямую коррелирует с производительностью вашего сервера. После обновление компоненты Core OS произойдет вторая перезагрузка, в рамках которой произойдет обновление всех модулей FreePBX, после чего апгрейд будет завершен. По окончанию, вы увидите стандартный баннер FreePBX 14: Выполняем проверку версии. Даем команду в консоль: ls -l /usr/src | grep freepbx Если все ОК, то вывод будет вот такой:
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59