По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сегодня речь в статье пойдет о Docker. Все, кто хоть как-то касаются сферы IT слышали про Docker, но не все знают, что же это такое. Итак, сегодня мы простыми словами расскажем о том, что такое Docker, чем это отличается от виртуализации, покажем подробный процесс инсталляции на CentOS 7 и установим просто графический интерфейс Portainer, для управления контейнерами. Также немного коснемся команд для использования Docker. Что такое Docker? Docker - это платформа, которая может “упаковать” приложение, его зависимости, middleware и так далее в так называемый “контейнер”, после чего у вас появится возможность развернуть данный контейнер на любом сервере, на котором установлен Docker - причем буквально за доли секунды, одной командой. Благодаря этим решается сразу несколько задач - в первую очередь, процесс запуска приложения на сервере многократно упрощается, во вторую - какие-либо баги в контейнеризированном приложении никак не повлияют на сам сервер, также как и специфические настройки сервера не повлияют на приложение. И хоть кажется, что Docker выглядит и работает как виртуальная машина, на самом деле они очень разные: виртуальная машина эмулирует сервер целиком, включая все аппаратные ресурсы, а контейнер изолирует приложение, процессы, юзеров и файловую систему. При этом все контейнеры используют общее Linux ядро хоста и запускается в нативном режиме только на Linux машинах, но зато на одной машине можно запустить примерно в 5-6 раз больше контейнеров, чем виртуальных машинах. Ниже на схеме показаны различия: Установка Docker Как было упомянуто в начале статьи, устанавливать Докер мы будем на CentOS 7 - процесс установки крайне простой и быстрый. Итак, сначала необходимо установить с помощью yum несколько пакетов: yum install -y yum-utils device-mapper-persistent-data Lvm2 Далее необходимо установить stable репозиторий для Докера, который вам понадобится, даже если вы захотите устанавливать билды из edge и test репозиториев: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo Затем устанавливаем сам Docker: yum install docker-ce И, наконец, запускаем Docker: systemctl start docker Проверяем, что Docker запустился и работает в два шага: systemctl status docker Вы должны увидеть следующий вывод: После этого пробуем развернуть контейнер hello-world: docker run hello-world Если все шаги были выполнены корректно, то на экране должно появится следующее: Установка Portainer Portainer - это очень удобный графический интерфейс для управления Docker или Docker Swarm. Устанавливается он практически в одно действие - так как сам точно также является контейнером. Итак: Создаем разметку для Portainer: docker volume create portainer_data И затем запускаем сам контейнер: docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer После чего заходите на сетевой адрес вашего сервера на порт 9000, и вы должны увидеть окно с предложением установить пароль администратора: Далее выбираем где находится наш Докер - на этом же сервере, или на другом (в нашем случае - Local) и кликаем Connect. После чего вас встретит красивый дэшборд: Я предлагаю вам попробовать разобраться со всем многообразием дэшборда самим и задавать нам вопросы в комментариях - а мы пока продемонстрируем несколько фич. Итак, сначала кликните на Containers - вы увидите все имеющиеся контейнеры с информацией о них: Как вы можете видеть, у нас на данный момент запущен только один контейнер - Portainer, и доступ к нему открыт по порту 9000 (столбец Published Ports), и адрес во внутренней сети Docker - 172.17.0.2. Далее кликните на App Templates в меню справа - и вы увидите весь список приложений, который можно запустить одним кликом: Зайдем во вкладку Httpd: Сперва, назовите данный контейнер как-нибудь - мы назвали test-merionet. Затем, можете кликнуть на Show advanced options и вы увидите возможность выбора какой порт, протокол и том будет использоваться данным контейнером. Затем просто нажмите на Deploy the container. Пройдет буквально несколько секунд и вас должно перекинуть обратно на вкладку Containers, но, с уже вторым запущенным контейнером: Отсюда вы увидите, что httpd сервер доступен на 32768 порту. Итак, пробуем зайти на данный сервер через браузер: Вы должны будете увидеть надпись It works! так же как на скриншоте выше - дальнейшую настройку httpd мы пока оставляем за кадром. Донастройка Docker и полезные команды Итак, вы уже познакомились с Docker и получили представление о его возможностях. Ниже в тексте мы опишем действия, которые также необходимо сделать после установки и некоторые команды, без которых буквально трудно жить, если активно используешь Докер. Первым делом, настройте автозапуск для сервиса Docker: systemctl enable docker Затем, вы можете проверить запущенные контейнеры в консоли (на случай если вам не нравится идея использования GUI) с помощью команды docker ps Теперь немного о командах и синтаксисе - будем показывать на примерах: Допустим, нам нужно запустить CentOS и выполнить в нем команду echo: docker run centos echo “Hello from Merion Networks” Запустить CentOS и подключиться к его терминалу: docker run -t-i centos /bin/bash Можете сразу указать нужные порты с помощью ключа -p и запустить контейнер в бэкграунде с помощью ключа --d: docker run -p 80:80 --d nodejs-app Итак, совсем немного об опциях для команды docker run - полный список можно найти по ссылке https://docs.docker.com/engine/reference/commandline/run/#description -p - открываем конкретные порты через пробел - порт доступа и порт на контейнере, к примеру docker run -p 9876:80 %imagename% -P - открываем сразу все порты; -t - подключение к терминалу контейнера; -i - интерактивный режим, STDIN все время будет открыт; Обязательно посетите Docker Hub, так как там можно найти кучу интересных контейнеров с примерами их установки и доступом к Docker-файлу, это что-то вроде GitHub только для контейнеров. Заключение На этом всё, спасибо за внимание! Пишите в комментариях, что еще вам интересно узнать про Докер - в следующих статьях мы покроем такие темы как: создание своего собственного Докер-файла и образа, как подключить папку файловой системы с вашего хоста, интересное на Docker Hub и так далее.
img
RPM (Red Hat Package Manager) - это наиболее популярная утилита управления пакетами для Linux систем на базе Red Hat, таких как (RHEL, CentOS и Fedora). Она используется для установки, удаления, обновления, запроса и проверки пакетов программного обеспечения. Пакет состоит из архива файлов и информации о пакете, включая имя, версию и описание. Формат файлов также называется RPM. Есть несколько способов откуда можно взять пакеты RPM: CD/DVD с программным обеспечением, CentOS Mirror, RedHat (нужен аккаунт) или любые открытые сайты репозитория. В RPM используется несколько основных режимов команд: Install (используется для установки любого пакета RPM), Remove (используется для удаления, стирания или деинсталляции пакета), Upgrade (используется для обновления существующего пакета), Query (используется для запроса пакета) и Verify (используется для проверки пакетов RPM). Рассмотрим это на примере. У нас есть пакет, и теперь посмотрим, что мы можем с ним делать. Установка Как узнать информацию о пакете RPM без установки? После того, как мы скачали пакет мы хотим узнать информацию о пакете перед установкой. Мы можем использовать -qipoption (запрос информации о пакете), чтобы вывести информацию о пакете. $ sudo rpm -qip GeoIP-1.5.0-11.el7.x86_64.rpm Вывод: Name : GeoIP Version : 1.5.0 Release : 11.el7 Architecture: x86_64 Install Date: (not installed) Group : Development/Libraries Size : 2905020 License : LGPLv2+ and GPLv2+ and CC-BY-SA Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5 Source RPM : GeoIP-1.5.0-11.el7.src.rpm Build Date : Sat 05 Nov 2016 08:29:17 PM UTC Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem Vendor : CentOS URL : http://www.maxmind.com/app/c Summary : Library for country/city/organization to IP address or hostname mapping Description : GeoIP is a C library that enables the user to find the country that any IP address or hostname originates from. It uses a file based database that is accurate as of June 2007 and can optionally be updated on a weekly basis by installing the GeoIP-update package. This database simply contains IP blocks as keys, and countries as values. This database should be more complete and accurate than using reverse DNS lookups. This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/ Как установить RPM пакет? Мы можем использовать параметр -ivh для установки определенного пакета, как показано ниже. $ sudo rpm -ivh GeoIP-1.5.0-11.el7.x86_64.rpm Вывод: Preparing... ################################# [100%] package GeoIP-1.5.0-11.el7.x86_64 is already installed Как проверить установленный пакет RPM? Мы можем использовать параметр -q с именем пакета, и он покажет, установлен ли пакет или нет. $ sudo rpm -q GeoIP Вывод: GeoIP-1.5.0-11.el7.x86_64 Как вывести список всех файлов для определенного установленного пакета RPM? Мы можем перечислить все файлы установленных пакетов rpm, используя опцию -ql с командой rpm. $ sudo rpm -ql GeoIP Вывод: /etc/GeoIP.conf /etc/GeoIP.conf.default /usr/bin/geoiplookup /usr/bin/geoiplookup6 /usr/bin/geoipupdate /usr/lib64/libGeoIP.so.1 /usr/lib64/libGeoIP.so.1.5.0 /usr/lib64/libGeoIPUpdate.so.0 /usr/lib64/libGeoIPUpdate.so.0.0.0 /usr/share/GeoIP /usr/share/GeoIP/GeoIP-initial.dat /usr/share/GeoIP/GeoIP.dat /usr/share/GeoIP/GeoIPASNum.dat /usr/share/GeoIP/GeoIPASNumv6.dat /usr/share/GeoIP/GeoIPCity.dat /usr/share/GeoIP/GeoIPCityv6.dat /usr/share/GeoIP/GeoIPCountry.dat /usr/share/GeoIP/GeoIPCountryv6.dat /usr/share/GeoIP/GeoIPv6-initial.dat ... Как вывести список недавно установленных пакетов RPM? Мы можем использовать параметр -qa с параметром --last, в котором будут перечислены все недавно установленные пакеты rpm. $ sudo rpm -qa --last Вывод GeoIP-1.5.0-11.el7.x86_64 Sat 01 Sep 2019 11:34:09 AM UTC wget-1.14-15.el7_4.1.x86_64 Sun 26 Aug 2019 03:21:02 PM UTC iwl7265-firmware-22.0.7.0-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:18 PM UTC libgomp-4.8.5-28.el7_5.1.x86_64 Thu 16 Aug 2019 02:10:15 PM UTC iwl2030-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:15 PM UTC iptables-1.4.21-24.1.el7_5.x86_64 Thu 16 Aug 2019 02:10:15 PM UTC yum-plugin-fastestmirror-1.1.31-46.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl6000-firmware-9.221.4.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl4965-firmware-228.61.2.24-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl105-firmware-18.168.6.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:14 PM UTC iwl100-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:13 PM UTC iwl1000-firmware-39.31.5.1-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:13 PM UTC ca-certificates-2018.2.22-70.0.el7_5.noarch Thu 16 Aug 2019 02:10:13 PM UTC iwl6000g2b-firmware-17.168.5.2-62.2.el7_5.noarch Thu 16 Aug 2019 02:10:12 PM UTC ... Как установить RPM пакет без зависимостей? Мы можем использовать параметры -ivh с параметром --nodeps для проверки отсутствия зависимостей, чтобы установить конкретный пакет без зависимостей, как показано ниже. $ sudo rpm -ivh --nodeps GeoIP-1.5.0-11.el7.x86_64.rpm Вывод Preparing... ################################# [100%] Как заменить установленный пакет RPM? Мы можем использовать параметры -ivh –replacepkgs для замены установленного пакета. $ sudo rpm -ivh --replacepkgs GeoIP-1.5.0-11.el7.x86_64.rpm Вывод Preparing... ################################# [100%] Updating / installing... 1:GeoIP-1.5.0-11.el7 ################################# [100%] Удаление Как удалить пакет RPM? Мы можем использовать параметр -e для удаления определенного пакета, установленного без зависимостей. Обратите внимание, что удаление определенного пакета может нарушить работу других приложений. $ sudo rpm -e --nodeps GeoIP Обновление Как обновить установленный пакет RPM? Для обновления пакета мы используем параметры -Uvh $ sudo rpm -Uvh GeoIP-1.5.0-11.el7.x86_64.rpm Запрос Как запросить все установленные пакеты? Мы можем использовать параметры -a вместе с q для запроса всех установленных пакетов на сервере. $ sudo rpm -qa Вывод python-firewall-0.4.4.4-14.el7.noarch ncurses-base-5.9-14.20130511.el7_4.noarch plymouth-0.8.9-0.31.20140113.el7.centos.x86_64 kbd-misc-1.15.5-13.el7.noarch vim-common-7.4.160-4.el7.x86_64 bash-4.2.46-30.el7.x86_64 dmidecode-3.0-5.el7.x86_64 filesystem-3.2-25.el7.x86_64 kbd-1.15.5-13.el7.x86_64 vim-enhanced-7.4.160-4.el7.x86_64 firewalld-0.4.4.4-14.el7.noarch .... Как запросить конкретный пакет? Мы можем использовать команду grep, чтобы узнать, установлен ли конкретный пакет или нет. $ sudo rpm -qa | grep GeoIP Вывод GeoIP-1.5.0-11.el7.x86_64 Как запросить файл, который принадлежит пакету RPM? Чтобы узнать к какому пакету RPM относится файл /usr/lib64/libGeoIP.so.1.5.0. используем следующую команду. $ sudo rpm -qf /usr/lib64/libGeoIP.so.1.5.0 Вывод GeoIP-1.5.0-11.el7.x86_64 Проверка Как получить информацию для конкретного пакета? Мы можем использовать параметры -i вместе с q, чтобы получить информацию для конкретного пакета, как показано ниже. $ sudo rpm -qi GeoIP Вывод Name : GeoIP Version : 1.5.0 Release : 11.el7 Architecture: x86_64 Install Date: Thu 16 Aug 2018 02:04:09 PM UTC Group : Development/Libraries Size : 2905020 License : LGPLv2+ and GPLv2+ and CC-BY-SA Signature : RSA/SHA256, Sun 20 Nov 2016 05:49:19 PM UTC, Key ID 24c6a8a7f4a80eb5 Source RPM : GeoIP-1.5.0-11.el7.src.rpm Build Date : Sat 05 Nov 2016 08:29:17 PM UTC Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem Vendor : CentOS URL : http://www.maxmind.com/app/c Summary : Library for country/city/organization to IP address or hostname mapping Description : GeoIP is a C library that enables the user to find the country that any IP address or hostname originates from. It uses a file based database that is accurate as of June 2007 and can optionally be updated on a weekly basis by installing the GeoIP-update package. This database simply contains IP blocks as keys, and countries as values. This database should be more complete and accurate than using reverse DNS lookups. This package includes GeoLite data created by MaxMind, available from http://www.maxmind.com/ Как проверить RPM пакет? Мы можем проверить пакет, сравнив информацию об установленных файлах пакета с базой данных rpm, используя опцию -Vp. $ sudo rpm -Vp GeoIP-1.5.0-11.el7.x86_64.rpm Как проверить все пакеты RPM? Мы можем проверить все установленные пакеты rpm, используя опцию -Va $ sudo rpm -Va Вывод S.5....T. c /etc/sysconfig/authconfig S.5....T. c /etc/yum.repos.d/CentOS-Base.repo .M....... c /etc/machine-id .M....... g /etc/udev/hwdb.bin .M....... g /var/lib/systemd/random-seed .M....... c /etc/shadow S.5....T. c /etc/ssh/sshd_config .M....... c /etc/audit/rules.d/audit.rules S.5....T. c /etc/NetworkManager/NetworkManager.conf ....L.... c /etc/pam.d/fingerprint-auth ....L.... c /etc/pam.d/password-auth ....L.... c /etc/pam.d/postlogin
img
Привет, коллега. Сегодня хотим рассказать о своем телеграмм чате, который создали для общения наших читателей по всем вопросам, связанным с IT. Цель данного чата - взаимопомощь ИТ экспертов, а также начинающих специалистов между собой. В чате можно задать вопрос, на который давно не можешь найти ответ и получить ответ, или как минимум, подсказку от профессионального сообщества. Для кого этот чат? В чате присутствует следующая экспертиза: Сетевая инженерия: вопросы по работе сетей на базе вендоров MikroTik, Cisco, Huawei, маршрутизация, коммутация, построение VPN, провайдерские решения (ISP); Телефония и контактные центры: вопросы по VoIP решениям на базе Asterisk, CUCM, CME, Openscape, Avaya, Huawei, а так же по КЦ платформам на базе UCCX, UCCE, Genesys Серверное администрирование: Linux/Unix системы, решения на базе Windows Server, Apache, Nginx, IIS и прочее. DevOPS: про Caddy, Kubernetes, Docker, Vagrant, Jenkins, Chef, Ansible, Hadoop и ELK (Elasticsearch, Logstash и Kiban) - что называется "under the hood". Помимо прочего, на вопросы участников отвечают наши инженеры "Мерион Нетворкс". Вступить в чат #функция числительных function getNumEnding($number, $endingArray) { $number = $number % 100; if ($number>=11 && $number
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59