Docker простыми словами
6.01K subscribers
217 photos
26 videos
1 file
111 links
Сообщество по докеру.

Рассказываем про docker и его применение в программировании и тестировании.

Открыты к критике и ждем вашего фидбека.
@viktorreh @anothertechrock
Download Telegram
👩‍💻 Шпаргалка по основным командам Docker

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

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
SQLQuestions - обновленный канал по SQL Задачкам.

Задачи и тесты по SQL + соревновательный момент с другими учениками.
Подборка книг по devops.
Скачивайте и читайте.

Философия DevOps. Искусство управления IT
Автор: Дженнифер Дэвис

Запускаем Ansible
Автор: Хохштейн Л.

Безопасность контейнеров
Автор: Лиз Райс

Terraform: инфраструктура на уровне кода
Автор: Евгений Брикман

Operations Anti-patterns, DevOps Solutions
Автор: Jeffery D. Smith

Kubernetes для DevOps
Автор: Джон Арундел

Ускоряйся! Наука DevOps
Автор: Николь Ф.

Python для сетевыхинженеров
Автор: Эрик Чоу

Continuous delivery. Практика непрерывных апдейтов
Автор: Вольф Эберхард

Руководство по DevOps
Автор: Джен Ким

Пишите ваши предложения по книгам - мы найдем и разместим.
This media is not supported in your browser
VIEW IN TELEGRAM
🐬 Что такое Docker и зачем он нужен для веб сайтов? 🐬
Визуализация процесса работы с Docker 👇

Давайте разберем основные термины с помощью аналогии:

🔹Dockerfile
— Представьте Dockerfile как рецепт или набор инструкций.

Вы начинаете с создания Dockerfile, который перечисляет все «ингредиенты» (программное обеспечение и конфигурации), необходимые для работы вашего приложения.

🔹Docker Image
— Используя Dockerfile как рецепт, вы «готовите» или «собираете» Docker Image.

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

🔹Docker Container
— После создания Docker Image вы можете «подать его на стол», создав Docker Container.

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

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

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
особенно если рядышком установлен docker
🔠🚤 Gordon: AI-агент для Docker, который упрощает работу с контейнерами

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

Gordon — это часть инициативы Docker Labs по внедрению генеративного искусственного интеллекта. Его разработка отражает растущий интерес к интеграции AI в инструменты DevOps и открывает двери для новых возможностей.

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
девопс инженеры всё же решили проблему с помощью docker контейнеров
Запуск Visual Studio Code в Докере: зачем и как?

Docker — это мощный инструмент для создания изолированных окружений, а запуск Visual Studio Code в контейнере может существенно улучшить ваш рабочий процесс. Давайте разберём, зачем это нужно и как настроить VS Code для работы через Docker.

Зачем запускать VS Code в Docker?
Контейнер с VS Code можно перенести на другой компьютер или сервер. Это особенно полезно, если вы работаете на разных машинах или хотите поделиться настроенным окружением с командой.

Как настроить Visual Studio Code в Docker?
Для настройки можно использовать гайд из статьи. Вот краткое руководство:

1️⃣ Создание Dockerfile
Создайте файл Dockerfile со следующим содержимым:
FROM ubuntu:latest

# Install prerequisites
RUN apt-get update && apt-get install -y \
curl \
wget \
sudo \
build-essential

# Install Code-Server (VS Code in the browser)
RUN curl -fsSL https://code-server.dev/install.sh | sh

# Expose port for Code-Server
EXPOSE 8080

# Start Code-Server on container launch
CMD ["code-server", "--bind-addr", "0.0.0.0:8080", "--auth", "none"]


2️⃣ Запуск контейнера
Запустите контейнер и откройте порт 8080 для доступа

3️⃣ Доступ к VS Code
Откройте браузер и перейдите по адресу http://localhost:8080. Здесь вы сможете работать в Visual Studio Code.

4️⃣ Сохранение данных (опционально) - чтобы изменения сохранялись, подключите локальную папку

А вы уже пробовали запускать VS Code в Docker? Делитесь своим опытом и задавайте вопросы в комментариях!

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?

Docker базируется на технологиях:

🔸 namespaces — обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)
🔸 cgroups — позволяет управлять группой процессов, и управлять их ресурсами
🔸 capabilities
— позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
🔸 overlay namespaces
— (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.

А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.

Компоненты докера:

🔻 Docker Daemon — тот самый Container Engine; запускает контейнеры.
🔻 Docker CLI — утилита по управлению Docker.
🔻 Dockerfile — инструкция по тому, как собирать образ.
🔻 Image — образ, из которого раскатывается контейнер.
🔻 Container
🔻 Docker registry — хранилище образов.

На Docker_host работает Docker daemon и запускает контейнеры.
Client — передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.

Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.

Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.
▶️⚙️ Кроссплатформенные CI/CD-процессы с Docker

При разработке CI/CD-процессов возникает проблема несовместимости между разными платформами. Конфигурации, работающие в одной среде, могут некорректно работать в другой.

Docker решает эту проблему, создавая единое окружение, в котором можно запускать сборки и тестирование без зависимости от используемой CI/CD-системы.

Для быстрого старта можно использовать шаблон:
git clone https://github.com/mathio/awesome-action-starter.git my-action
cd my-action


➡️ Подробное руководство доступно по ссылке

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
🚀 Как запустить Kubernetes на Docker Desktop за несколько шагов

Запуск Kubernetes на локальной машине стал ещё проще с помощью Docker Desktop. Этот процесс не требует облачной инфраструктуры и даёт возможность работать с контейнеризированными приложениями прямо на компьютере.

Наш Docker чатик 🐬

Шаги для настройки:
1️⃣Установка Docker Desktop

2️⃣ Включение Kubernetes: в настройках Docker Desktop есть раздел для Kubernetes. Нужно просто активировать опцию Enable Kubernetes. Это позволяет подключить Kubernetes к Docker и использовать его на локальной машине.

3️⃣ Перезапуск Docker Desktop: после активации опции нужно применить изменения и перезапустить Docker Desktop. Это завершит настройку кластера Kubernetes.

4️⃣Проверка работы кластера: чтобы убедиться, что кластер работает корректно, достаточно выполнить команду:
kubectl cluster-info

В ответ будет показана информация о текущем состоянии кластера.

⚡️Начало работы с приложениями: после настройки кластера можно начать развертывать и управлять контейнерами с помощью Kubernetes, тестировать приложения и настраивать окружение для разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
В этом репозитории вы найдете Dockerfile для 13 языков программирования

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

React
NodeJS
Python
Golang
Java Spring Boot
Java Quarkus
ASP.NET Core
Ruby
Rust
PHP Laravel
Dart
R Studio
Contact

👉 https://github.com/hoalongnatsu/Dockerfile

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
моё первое знакомство с docker контейнерами
✏️🐬 Гайд по контейнеризации Django от Docker

В блоге Docker появился новый гайд, который подробно объясняет, как контейнеризировать Django-приложение. Этот пошаговый туториал покажет вам:
Как настроить Dockerfile для вашего проекта.
Использовать docker-compose для управления сервисами.
Оптимизировать приложение для продакшена с Gunicorn и сборкой статических файлов.

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

Наш Docker чатик 🐬
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Насколько выросло использование Dockerfile в проектах за последние 10 лет?
История и приготовление Docker «для самых маленьких»

Если вы новичок в ИТ или DevOps, поверхностно знакомы с контейнеризацией и только начали осваивать Docker, то встречаемся 10 апреля в 19:00 на вебинаре «Управление контейнерами».

Что в программе?

▪️Эволюция ИТ-инфраструктуры от виртуализации к контейнеризации
▪️Архитектура Docker
▪️Какими бывают контейнеры
▪️Паттерны и антипаттерны dockerfile
▪️Инструменты управления

🔗 Регистрация
🐳 10 практик безопасности Docker

💈 Предпочитайте минимальные базовые образы

💈 Выбирайте наименее привилегированного пользователя. Просто так root не нужен.

💈 Подписывайте и проверяйте образы для предотвращения MITM-атак

💈 Поиск, исправление и мониторинг уязвимостей с открытым исходным кодом

💈 Не допускайте утечки конфиденциальной информации. Иногда при создании приложения внутри образа Docker вам нужны секреты, такие как закрытый ключ SSH, чтобы извлекать код из частного репозитория, или вам нужны токены для установки частных пакетов. Если вы копируете их в промежуточный контейнер Docker, они кэшируются на том уровне, на который они были добавлены, даже если вы удалите их позже. Эти токены и ключи должны храниться за пределами Dockerfile.

💈 Используйте фиксированные теги для неизменности

💈 Используйте COPY вместо ADD (рекурсивно копирует локальные файлы, неявно создает каталог назначения)

💈 Используйте метки метаданных

💈 Используйте многоступенчатую сборку для небольших и конфиденциальных образов docker. Эта функция позволяет вам использовать несколько временных образов в процессе сборки, сохраняя только последний образ вместе с информацией, которую вы скопировали в него.

💈 Используйте линтер, чтобы избежать распространенных ошибок и разработать рекомендации по наилучшей практике, которым инженеры могут следовать автоматически.

Вот тут подробно описаны все нюансы

#гайд