Docker Ninja – Telegram
Docker Ninja
1.05K subscribers
30 photos
91 links
По всем вопросам обращаться к @nesudimov_eu
Download Telegram
Channel created
Channel photo updated
🥷 Добро пожаловать на канал Docker Ninja! 🥷

Как известно, путь в тысячу ли начинается с одного шага. Поэтому не теряй времени и скорее подписывайся на канал. Здесь мы, ежедневно совершаем небольшой, но значительный шаг на бесконечном пути к мастерству владения Docker!

Каждый пост — это меткий бросок в мир контейнеризации. Здесь ты найдешь короткие, но ёмкие заметки о Docker, Dockerfile и docker compose.

Присоединяйтеся, чтобы стать мастером Docker и владеть инструментами контейнеризации так же виртуозно, как ниндзя владеет своим мечом! ⚔️

Осс!🧘‍♂️
👍3
🆘 Save our nerds 🆘

Во время разработки своего Docker образа частенько приходится вносить какие-либо изменения. Но, проблема в том, что каждый раз пересобирать новый образ из докерфайла довольно накладно.

Эту проблему давно решили с помощью следующей команды:
docker commit <container_id> <new_image_name>

commit позволяет зафиксировать состояние контейнера и создать новый образ на его основе и, конечно же, активно использовать этот образ дальше.
🧹Сжигаем мосты 🧹

Не смотря на то, что докер это синоним минимализма, со временем, если не удалять старые образы, дисковое пространство закончится. Особенно часто такое происходит на билд-агентах.

Конечно же, существует команда удаления образов и прочих Docker абстракций. Но использовать их, когда на вашем билд агенте будет 100+ неиспользуемых образов, не самая лучшая идея. И как всегда, на помощь, приходит очередная команда, которую уже давно придумали для нас, но никому не сказали.

Используйте команду:
docker system prune

Она освободит место на диске, удалив неиспользуемые контейнеры, образы, сети и даже тома.
Используем с осторожностью, эта команда удалит все данные без возможности восстановления!
👍3
🍰 Культурный слой контейнера 🍰

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

Вы всегда можете просмотреть из каких слоев состоит ваш образ, используя команду:
docker image history <image>

Это полезно для анализа и оптимизации ваших образов, так как вы можете увидеть, какие команды были выполнены на каждом слое.
👍2
🕶 My name is Container - Docker Container 🕶

Представьте, вы идеально подготовили контейнерную инфраструктуру, продумали все нюансы и детали и успешно запустили все нужные контейнеры. Освободившееся от рутины время вы решили посвятить, конечно же, самообразованию. И тут, какой-то индийский черт дернул вас за пятку прочитать статью про лучшие практики наименования контейнеров...
Конечно же, это задело вас за живое и теперь вам срочно надо переименовать все контейнеры! Но, неужели придется все стопать и поднимать заново?!?

А вот и нет! Docker и тут дает нам шанс финтануть ушами перед коллегами.🦻🏻
Используйте команду docker rename для изменения имени контейнера.

Пример:
docker rename old_name new_name

Это поможет вам легко управлять контейнерами и поддерживать их в порядке.
👍3
👮🏼‍♀️ Всем спокойно, СанЭпид станция👮🏼‍♀️

Один из механизмов, который помогает Docker изолировать контейнеры от хост-системы и других контейнеров называется cgroups. Cgroups управляют ресурсами, такими как CPU и память, чтобы предотвратить их перерасход.

Проверить конфигурацию cgroups для контейнера можно с помощью команды:
docker inspect <container_id>

Она поможет вам понять, как ресурсы распределяются между контейнерами и оптимизировать их работу.
🏃🏽 Беги, Форрест 🏃🏽

Без всяких докерфайлов и компоузов. Пришел, увидел, запустил - и все работает!!! Команда docker run это не стареющая классика, как и отсылка к фильму в названии поста. А полезна она для быстрого развертывания и тестирования различных приложений.

Пример использования:
docker run  forrest_not_container

Этот пример запускает контейнер с Nginx forrest_not_container в фоновом режиме и не пробрасывает никакой порт, потому что в фильме Форрест Гамп никаких портов не было😵‍💫.
👍42
🪖 Sir, yes, sir! 🪖

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

Пример использования CMD:
FROM ubuntu:latest
CMD ["echo", "Hello, Docker!"]


Команда CMD может быть переопределена при запуске контейнера с помощью флага --command. Это полезно для гибкого управления поведением контейнера. Например, когда мы хотим передать какие-либо опции для нашего приложения.
👍1
♠️ Есть два стула... 👍🏻

Тома в Docker — это один из механизмов управления данными,, который не зависит от контейнеров. Они позволяют сохранять данные даже после удаления контейнеров.

Существует два типа томов:
- именованные
- анонимные

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

Оба типа томов обеспечивают гибкость в управлении данными, позволяя вам выбирать наиболее подходящий способ хранения в зависимости от ваших потребностей.
Я хочу посмотреть подробную информацию о моем контейнере. Какую команду для этого нужно ввести?
Anonymous Quiz
3%
docker build -t <one>:<two>
2%
docker rmi
94%
docker inspect <one>
2%
docker commit <one> <two>
♻️ 7 бед - один reset ♻️

А вот эта команда прям таки претендует на звание волшебной кнопки для решения почти всех бед контейнера. Увы, но только почти...
Для быстрого перезапуска контейнера, используйте команду:

docker restart  <container_name>


Команда останавит и сразу же запустит контейнер заново. Легкий способ обновления конфигурации для ваших контейнеров без лишних усилий и первая команда при траблшутинге приложений!
🏴‍☠️ Портовый Жан-Батист 🏴‍☠️

Утилита docker-compose, а с некоторого времени плагин для docker docker compose значительно упрощает запуск и управление многоконтейнерными приложениями.

Заюзать его просто, как дважды два:
1. Описываем что за контейнеры мы хотим развернуть в файле docker-compose.yml
2. Для быстрого старта используем команду:
docker-compose up


3. Наблюдаем бегущие строки запуска в терминале
4. А далее ловим логи в stdout
🔥3👍1