DevOps Portal | Linux
Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps Сотрудничество, реклама: @devmangx Менеджер: @Spiral_Yuri РКН: https://clck.ru/3P8kFH
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام DevOps Portal | Linux
تُعد قناة DevOps Portal | Linux (@loose_code) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 13 085 مشتركاً، محتلاً المرتبة 9 390 في فئة التكنولوجيات والتطبيقات والمرتبة 49 413 في منطقة روسيا.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 13 085 مشتركاً.
بحسب آخر البيانات بتاريخ 31 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 15، وفي آخر 24 ساعة بمقدار -1، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 17.56%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 9.58% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 2 298 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 254 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 9.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل devops, kubernetes, docker, linux, ebpf.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“Присоединяйтесь к нашему каналу и погрузитесь в мир DevOps
Сотрудничество, реклама: @devmangx
Менеджер: @Spiral_Yuri
РКН: https://clck.ru/3P8kFH”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 01 سبتمبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
docker run.
🔹Останавливает и удаляет контейнеры в ответ на команды docker stop и docker rm.
3. Сетевое управление
🔹Управляет сетями Docker, которые соединяют контейнеры друг с другом и с внешними системами.
🔹Поддерживает различные сетевые драйверы (например, bridge, host, overlay, macvlan) для обработки различных сетевых требований и сценариев.
4. Управление томами
🔹Управляет томами Docker для сохранения данных, генерируемых контейнерами.
🔹Позволяет подключать тома к контейнерам во время их работы, что позволяет сохранять и обмениваться данными между контейнерами.
5. API
🔹Предоставляет REST API для программного взаимодействия с Docker.
🔹Клиент Docker использует этот API для отправки команд (например, создание контейнеров или управление образами) демону.
— Как работает демон Docker
🔹Фоновый процесс: работает непрерывно в фоновом режиме на хосте Docker.
🔹Взаимодействие: прослушивает запросы API от клиента Docker через Unix-сокет или сетевой порт.
🔹Настройка: может быть настроен с помощью различных параметров, таких как драйверы хранения, сетевые драйверы и параметры логирования, для разных вариантов использования.
Демон Docker является основным компонентом архитектуры Docker, обеспечивая удобное управление контейнерами, образами и сетями, а также обеспечивая гибкость и масштабируемость для контейнеризованных приложений.
👉 DevOps Portal-exec команды find, чтобы вызвать внешнюю программу для выполнения определённого действия над найденными файлами, соответствующими заданным критериям. Например, удаление файлов, вывод прав доступа и т. д.
$ find ~/ -type f -exec ls -lah {} \;
Это особенно полезно, когда нужно выполнить одно и то же действие над несколькими файлами, расположенными в разных местах.
Приведённая команда выводит информацию о правах доступа и других метаданных для каждого найденного файла.
Разбор опции -exec:
🔹exec ls — указывает find выполнить команду ls для каждого найденного файла.
🔹-lah — отображает все файлы (включая скрытые), их права доступа и другие метаданные (например, размер) в удобочитаемом формате.
🔹{} — это специальный placeholder, заменяемый именем каждого найденного файла. Он всегда должен быть последним в списке параметров.
🔹; — указывает конец списка параметров. Его необходимо экранировать (\;), иначе shell интерпретирует его неправильно.
Также вместо ; можно использовать +, что позволяет передавать сразу несколько файлов в одну команду. Между + и {} должен быть пробел.
Можно выполнять несколько команд с помощью -exec. Например, следующая команда считает количество слов в текстовых файлах и их занимаемое место на диске:
$ find . -name "*.txt" -exec wc {} \; -exec du -sh {} \;
👉 DevOps Portal/var/lib/docker/volumes/ на Linux). Именованные тома подходят для хранения данных, требующих сохранности (например, базы данных) и легко поддаются резервному копированию или миграции.
🔹Анонимные тома (Anonymous Volumes)
Анонимные тома, как и именованные, управляются Docker, но не имеют явного имени. Они используются для временных данных, которые не нужно сохранять между пересозданиями или перезапусками контейнера. Их сложнее отслеживать, и они автоматически удаляются, когда контейнер, их использующий, уничтожается.
🔹Привязанные тома (Bind Mounts)
В отличие от обычных томов, привязанные тома позволяют монтировать конкретный каталог или файл с хостовой системы в контейнер. Этот метод предоставляет больше контроля над местоположением и правами доступа к данным. Изменения, внесенные в файлы на хосте, сразу отображаются в контейнере и наоборот. Bind mounts удобны для совместного использования конфигурационных файлов или исходного кода в процессе разработки.
— Создание и монтирование именованных томов
Создать именованный том можно командой:
docker volume create jenkins_home
Если имя не указано, Docker сгенерирует его автоматически.
Для запуска контейнера с монтированным томом используйте флаг -v:
docker run -d --name jenkins -p 8080:8080 -v jenkins_home:/var/data jenkins/jenkins
В этом примере том jenkins_home монтируется в контейнер по пути /var/data.
По умолчанию тома монтируются с правами чтения-записи. Чтобы примонтировать том в режиме "только для чтения", используйте :ro:
docker run -d --name jenkins -p 8080:8080 -v jenkins_home:/var/data:ro jenkins/jenkins
— Создание и монтирование анонимных томов
Анонимный том создается автоматически при запуске контейнера с -v, но без указания источника:
docker run -d -v /data nginx
— Создание и монтирование привязанных томов
Привязанные тома используют файловую систему хоста, а не Docker. Чтобы создать bind mount, необходимо заранее создать нужный каталог или файл на хосте.
Для монтирования каталога используйте флаг -v:
docker run -d -p 80:80 -v $(pwd):/data nginx
Или более явный --mount:
docker run -d -p 80:80 --mount type=bind,source=$(pwd),target=/data nginx
Теперь любые файлы, созданные в /data внутри контейнера, появятся в текущем каталоге на хосте.
Важно: следите за правами доступа, чтобы избежать проблем с доступом к файлам.
— Просмотр и управление томами Docker
🔹Список всех томов в системе:
docker volume ls
🔹Просмотр информации о томе:
docker volume inspect jenkins_home
🔹Удаление томов Docker
Удаление конкретного тома:
docker volume rm jenkins_home
Удаление всех неиспользуемых томов:
docker volume prune
Анонимные тома и привязанные тома обычно удаляются вместе с контейнером.
— Практическое применение Docker Volumes
🔹Сохранение данных: базы данных или файловые хранилища сохраняют данные даже после удаления контейнера.
🔹Общий доступ к данным: несколько контейнеров могут использовать общий том.
🔹Разработка: привязанные тома позволяют разрабатывать без пересборки контейнеров, так как код обновляется на лету.
🔹Резервное копирование и миграция: данные тома можно скопировать с одного хоста на другой./var/lib/docker/volumes/ на Linux). Именованные тома подходят для хранения данных, требующих сохранности (например, базы данных) и легко поддаются резервному копированию или миграции.
🔹Анонимные тома (Anonymous Volumes)
Анонимные тома, как и именованные, управляются Docker, но не имеют явного имени. Они используются для временных данных, которые не нужно сохранять между пересозданиями или перезапусками контейнера. Их сложнее отслеживать, и они автоматически удаляются, когда контейнер, их использующий, уничтожается.
🔹Привязанные тома (Bind Mounts)
В отличие от обычных томов, привязанные тома позволяют монтировать конкретный каталог или файл с хостовой системы в контейнер. Этот метод предоставляет больше контроля над местоположением и правами доступа к данным. Изменения, внесенные в файлы на хосте, сразу отображаются в контейнере и наоборот. Bind mounts удобны для совместного использования конфигурационных файлов или исходного кода в процессе разработки.
— Создание и монтирование именованных томов
Создать именованный том можно командой:
docker volume create jenkins_home
Если имя не указано, Docker сгенерирует его автоматически.
Для запуска контейнера с монтированным томом используйте флаг -v:
docker run -d --name jenkins -p 8080:8080 -v jenkins_home:/var/data jenkins/jenkins
В этом примере том jenkins_home монтируется в контейнер по пути /var/data.
По умолчанию тома монтируются с правами чтения-записи. Чтобы примонтировать том в режиме "только для чтения", используйте :ro:
docker run -d --name jenkins -p 8080:8080 -v jenkins_home:/var/data:ro jenkins/jenkins
— Создание и монтирование анонимных томов
Анонимный том создается автоматически при запуске контейнера с -v, но без указания источника:
docker run -d -v /data nginx
— Создание и монтирование привязанных томов
Привязанные тома используют файловую систему хоста, а не Docker. Чтобы создать bind mount, необходимо заранее создать нужный каталог или файл на хосте.
Для монтирования каталога используйте флаг -v:
docker run -d -p 80:80 -v $(pwd):/data nginx
Или более явный --mount:
docker run -d -p 80:80 --mount type=bind,source=$(pwd),target=/data nginx
Теперь любые файлы, созданные в /data внутри контейнера, появятся в текущем каталоге на хосте.
Важно: следите за правами доступа, чтобы избежать проблем с доступом к файлам.
— Просмотр и управление томами Docker
🔹Список всех томов в системе:
docker volume ls
🔹Просмотр информации о томе:
docker volume inspect jenkins_home
🔹Удаление томов Docker
Удаление конкретного тома:
docker volume rm jenkins_home
Удаление всех неиспользуемых томов:
docker volume prune
Анонимные тома и привязанные тома обычно удаляются вместе с контейнером.
— Практическое применение Docker Volumes
🔹Сохранение данных: базы данных или файловые хранилища сохраняют данные даже после удаления контейнера.
🔹Общий доступ к данным: несколько контейнеров могут использовать общий том.
🔹Разработка: привязанные тома позволяют разрабатывать без пересборки контейнеров, так как код обновляется на лету.
🔹Резервное копирование и миграция: данные тома можно скопировать с одного хоста на другой.$ cat data.txt | grep "No such file"
Однако это не перенаправляет ошибки. Если файл не существует, команда grep не даст результата.
Что если нужно перенаправить и обработать как ошибки, так и обычный вывод? 🤔
Здесь на помощь приходит оператор перенаправления |&.
Этот оператор направляет как стандартный вывод (stdout), так и стандартные ошибки (stderr) первой команды через конвейер на стандартный ввод (stdin) второй команды. Посмотрите на следующий пример:
$ cat data.txt |& grep "No such file"
Обратите внимание на разницу: команда grep смогла найти совпадение.
Оператор |& в bash является сокращением для оператора перенаправления 2>&1 |:
$ cmd-1 2>&1 | cmd-2
👉 DevOps Portalparameters для объявления доступных параметров:
pipeline {
parameters {
string(name: 'ENVIRONMENT', defaultValue: 'dev', description: 'Целевое окружение для деплоя (dev, staging, prod)')
choice(name: 'BUILD_TYPE', choices: ['Release', 'Debug'], description: 'Тип сборки')
}
}
2. Использование параметров: Обращение к значениям, введенным пользователем, через объект params в шагах пайплайна:
stages {
stage('Build') {
steps {
echo "Сборка для окружения: ${params.ENVIRONMENT}"
echo "Тип сборки: ${params.BUILD_TYPE}"
}
}
}
3. Запуск сборок: При старте параметризованного пайплайна в UI Jenkins появится форма для ввода параметров.
— Типы параметров в Jenkins:
🔹String: Текстовый ввод.
🔹Choice: Выпадающий список значений.
🔹Boolean: Флаг (true/false).
🔹File: Загрузка файла.
🔹Password: Скрытый ввод для конфиденциальных данных.
🔹И другие. (Полный список доступен в документации Jenkins.)
— Преимущества параметризованных пайплайнов:
🔹Гибкость: Управление процессами без изменения кода пайплайна.
🔹Переиспользуемость: Один пайплайн можно применять для разных задач.
🔹Удобство: Позволяет даже нетехническим пользователям запускать билды с нужными параметрами.
🔹Оптимизация CI/CD: Упрощает процессы непрерывной интеграции и доставки (CI/CD).
— Дополнительные замечания:
🔹Можно задавать параметры по умолчанию.
🔹В истории билдов отображаются введенные параметры для каждого запуска.
🔹Для управления параметризованными пайплайнами можно использовать Jenkins Shared Libraries.
👉 DevOps PortalCtrl+U в терминале Linux удаляет все от позиции курсора до начала строки.
Аналогично, Ctrl+K удаляет все от позиции курсора до конца строки.
Это особенно полезно, если вы неправильно ввели пароль. Вместо того чтобы долго удерживать клавишу backspace, просто нажмите Ctrl+U, чтобы очистить ввод и ввести пароль заново.
Эти сочетания клавиш имеют множество других практических применений
👉 DevOps Portal192.168.3.6, 192.168.3.7, 192.168.3.8).
🔹Маршрутизатор, выполняющий NAT, имеет частный IP-адрес (например, 192.168.3.0/24) на своем внутреннем интерфейсе и публичный IP-адрес (например, 200.100.10.1) на внешнем интерфейсе, предоставленный поставщиком Интернет-услуг (ISP).
2. Преобразование пакетов:
🔹Когда устройство (например, 192.168.3.6) хочет общаться с внешним сервером (например, 65.44.21.24) через Интернет, оно отправляет пакет с своим частным IP-адресом в качестве источника.
🔹Маршрутизатор с включенным NAT перехватывает этот пакет. Прежде чем отправить его в назначение, маршрутизатор заменяет частный IP-адрес (192.168.3.6:5733) на свой публичный IP-адрес (200.100.10.1:5733). Этот процесс позволяет пакету пройти через Интернет, поскольку он не маршрутизирует частные IP-адреса.
3. Поддержание сеансов:
🔹Маршрутизатор поддерживает таблицу NAT для отслеживания активных сеансов. Эта таблица содержит соответствия между внутренними частными IP-адресами и портами и внешними публичными IP-адресами и портами.
🔹Например, таблица NAT может отображать соответствие 192.168.3.6:5733 -> 200.100.10.1:5733, что позволяет маршрутизатору корректно перенаправлять ответы обратно на исходное устройство в частной сети.
4. Обратное преобразование пакетов:
🔹Когда внешний сервер (65.44.21.24) отвечает, он отправляет пакеты на публичный IP-адрес (200.100.10.1:5733).
🔹NAT-маршрутизатор перехватывает эти входящие пакеты, обращается к таблице NAT и преобразует адрес назначения обратно в частный IP-адрес (192.168.3.6:5733), прежде чем отправить его соответствующему внутреннему устройству.
— Преимущества NAT
🔹Сохранение IP-адресов: NAT позволяет нескольким устройствам в локальной сети использовать один публичный IP-адрес, что значительно уменьшает количество требуемых IP-адресов.
🔹Безопасность: NAT скрывает внутренние IP-адреса сети, обеспечивая дополнительный уровень безопасности, предотвращая прямой доступ к внутренним устройствам из внешней сети.
— Заключение
NAT — это важная технология, которая помогает эффективно использовать IP-адреса и повышать безопасность сети. Преобразуя частные IP-адреса в публичные и управляя этими соответствиями, NAT обеспечивает бесперебойную связь между частными сетями и Интернетом. Эта функциональность незаменима в условиях ограниченных ресурсов IP-адресов и повышенных требований к безопасности.
👉 DevOps Portalnohup (сокращение от no hangup – «без зависания»). Она игнорирует все сигналы разрыва соединения, позволяя процессу продолжать работу даже при закрытии терминала.
Например, чтобы сжать большой объем данных с помощью команды tar и гарантировать, что процесс не прервётся при случайном закрытии терминального окна, выполните команду:
$ nohup tar -cf archive.tar file1 file2
Также nohup создаёт файл nohup.out, в который записывает вывод команды:
$ cat nohup.out
Альтернативно, можно использовать tmux, disown или screen.
👉 DevOps Portal