Docker простыми словами
5.8K subscribers
202 photos
25 videos
1 file
106 links
Сообщество по докеру.

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

Открыты к критике и ждем вашего фидбека.
@viktorreh @anothertechrock
Download Telegram
Запуск 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. Эта функция позволяет вам использовать несколько временных образов в процессе сборки, сохраняя только последний образ вместе с информацией, которую вы скопировали в него.

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

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

#гайд
Расскажите о командах systemd для управления Docker

Для запуска Docker многие дистрибутивы Linux используют systemd. Для запуска сервисов используется команда systemctl. Если ее нет, следует использовать команду service.

$ sudo systemctl start docker
$ sudo service docker start

Чтобы добавить сервис в автозагрузку, либо убрать его:

$ sudo systemctl enable docker
$ sudo systemctl disable docker

Для проверки параметров запуска сервиса и их изменения:

$ sudo systemctl edit docker

Просмотра связанных с сервисом журналов:

$ journalctl -u docker
👩‍💻 Docker - топ среди обучающих Devops каналов.

С помощью картинок и коротких видео даже новички начнут применять продвинутые инструменты разработки и использовать Docker.

Стоит подписаться: t.me/DevopsDocker
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM