Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+694новые вакансии за сутки·52 494вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 662
РезюмеAIПодготовкаСтатьи
ТарифыТарифы
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 391 кандидат открыт к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python6 244
  • Облачные технологии4 749
  • QA вакансии1 736
  • Android1 148
  • Инженер данных800
  • Продакт-менеджер321

Разработка

  • iOS1 092
  • Backend вакансии1 046
  • Fullstack вакансии453
  • AI вакансии391
  • Frontend вакансии376
  • Mobile вакансии27

По стеку

  • Go3 590
  • Java2 153
  • Kotlin942
  • Node.js767
  • Rust544
  • .NET496
  • PHP267
  • C++220
  • C#198

DevOps и инфраструктура

  • Kubernetes2 686
  • Linux-инфраструктура2 117
  • DevOps вакансии1 960
  • Terraform / IaC1 615
  • CI/CD871
  • Мониторинг и Observability742
  • SRE228
  • Кибербезопасность47

Аналитика и данные

  • Аналитик данных495
  • Data Scientist449
  • Бизнес-аналитик351
  • Системный аналитик54

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн70
  • Ручное тестирование14

По регионам

  • Вакансии в США23 835
  • Вакансии в Европе9 341
  • Работа в России3 283
  • Вакансии в Канаде2 140

По формату

  • Удалённые вакансии41 311
  • Релокация в США23 835
  • Гибридная работа4 058
  • Офисная работа2 949

По уровню

  • Senior вакансии20 396
  • Middle вакансии11 620
  • Junior вакансии3 665

Сейчас нанимают

Все компании
  • Rakuten188 вакансий
  • ASML163 вакансии
  • Wise139 вакансий
  • Grab134 вакансии
  • Infobip28 вакансий
  • Adyen23 вакансии
  • Darktrace17 вакансий
  • Spotify15 вакансий
  • Celonis11 вакансий
  • Razorpay9 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К подготовке по вакансии←К теме DockerВсе вопросы
DockerJuniorТеория

Чем named volume отличается от bind mount и от tmpfs? Когда что использовать?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Named volume управляется Docker и хранится в /var/lib/docker/volumes — для постоянных данных БД. Bind mount монтирует конкретный путь хоста — для hot reload кода. tmpfs живёт только в RAM и исчезает при остановке контейнера — для секретов и временных файлов.

Named Volume

Управляется Docker daemon. Физически хранится в /var/lib/docker/volumes/<name>/_data на Linux. Docker отвечает за создание директории, права доступа и жизненный цикл.

# docker-compose.yml
services:
  db:
    image: postgres:17
    volumes:
      - pgdata:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: secret

volumes:
  pgdata:  # Docker создаёт и управляет директорией
# Управление через CLI
docker volume create pgdata
docker volume ls
docker volume inspect pgdata
# Показывает Mountpoint: /var/lib/docker/volumes/pgdata/_data

# Бэкап named volume
docker run --rm \
  -v pgdata:/source:ro \
  -v $(pwd):/backup \
  alpine tar czf /backup/pgdata.tar.gz -C /source .

Когда использовать: данные баз данных (PostgreSQL, MySQL, MongoDB), загружаемые файлы, постоянное состояние приложения. Переносим между хостами через docker volume.

Три типа монтирования в Docker

Docker предоставляет три механизма для работы с данными за пределами union filesystem контейнера. Выбор влияет на производительность, переносимость и безопасность.

Bind Mount

Монтирует конкретный путь файловой системы хоста в контейнер. Путь должен существовать до запуска контейнера (или Docker создаст директорию, но не файл).

# docker-compose.yml
services:
  frontend:
    image: node:22-alpine
    volumes:
      - ./src:/app/src          # bind mount — hot reload
      - ./public:/app/public    # bind mount — статика
    working_dir: /app
    command: npm run dev
# Явный синтаксис (рекомендован для ясности)
docker run \
  --mount type=bind,source=$(pwd)/config,target=/etc/myapp,readonly \
  myapp:latest

# Проверка монтирований
docker inspect <container_id> | python3 -c "
import json, sys
c = json.load(sys.stdin)[0]
for m in c['Mounts']: print(m['Type'], m['Source'], '->', m['Destination'])
"

Когда использовать: разработка с hot reload, передача конфигурационных файлов, монтирование сокетов (/var/run/docker.sock), CI-кеши (Maven ~/.m2, npm node_modules).

tmpfs

Монтирует область оперативной памяти. Данные никогда не попадают на диск и уничтожаются при остановке контейнера. Поддерживается только на Linux.

# docker-compose.yml
services:
  app:
    image: myapp:latest
    tmpfs:
      - /tmp:size=64m,mode=1777
      - /run:size=16m
# Через docker run
docker run \
  --mount type=tmpfs,destination=/tmp,tmpfs-size=67108864 \
  myapp:latest

# Или краткий синтаксис
docker run --tmpfs /tmp:size=64m myapp:latest

Когда использовать: временные файлы сессий, кеш рендеринга, файлы с чувствительными данными (токены, ключи) которые нельзя писать на диск, тесты требующие быстрого I/O.

Сравнительная таблица

  • Persistence: named volume — да; bind mount — зависит от хоста; tmpfs — нет.
  • Управление: named volume — Docker; bind mount — пользователь/ОС; tmpfs — kernel.
  • Производительность I/O: named volume — хорошая; bind mount — зависит от ОС (на macOS медленнее); tmpfs — максимальная.
  • Переносимость: named volume — высокая; bind mount — низкая (путь хоста); tmpfs — высокая (только Linux).
  • Права доступа: named volume — Docker задаёт при создании; bind mount — наследует с хоста; tmpfs — задаётся параметрами.

Подводные камни

  • Bind mount на macOS работает медленно из-за gRPC FUSE — горячий reload 10k файлов может тормозить. Используй cached или delegated флаги (Docker Desktop) или переходи на docker compose watch.
  • Права доступа при bind mount. Файлы на хосте принадлежат UID хоста; внутри контейнера другой UID — получишь Permission Denied. Решение: --user флаг или chown в Dockerfile.
  • Named volume не удаляется с контейнером. docker compose down оставляет volumes; нужно docker compose down -v или docker volume rm.
  • tmpfs недоступен на Windows-контейнерах. Это Linux-only механизм ядра.
  • Overlay файловая система и named volume. Если контейнер пишет в путь, который уже содержит данные из образа, named volume скроет эти данные при первом монтировании (но скопирует их в volume при инициализации).
  • Монтирование поверх node_modules. Bind mount ./:/app перекрывает /app/node_modules из образа — пакеты исчезают. Решение: добавить анонимный volume /app/node_modules.
  • tmpfs size не ограничен по умолчанию. Без параметра size tmpfs может занять всю RAM хоста.

Типичные ошибки

  • Хранить важные данные в writable layer контейнера.
  • Использовать bind mount в production без контроля host path и прав.
  • Забывать, что tmpfs расходует память и не переживает restart.

Что проверяет интервьюер

  • Различает lifecycle named volume, bind mount и tmpfs.
  • Выбирает подход под data, config, dev source и temporary files.
  • Учитывает backup, permissions and read-only mounts.

Как вы знаете этот вопрос?

Проверить себя по теме Docker →

Источники

  • https://docs.docker.com/engine/
  • https://docs.docker.com/compose/
←Предыдущий вопросКак ты организуешь tagging образов в проде? Почему latest в проде — плохо?Следующий вопрос→Зачем контейнер должен писать логи в stdout/stderr, а не в файл?

Связанные темы

DockerData persistencedeployment configurationDocker storage

Вакансии с этим навыком

Docker вакансии
  • Web Application Engineer - EC First Party Development Department (ECFD)
  • Senior Software Engineer, Advertisement Optimization Group - Merchandising and Advertisement Department (MAD)
  • Senior Web Application Engineer, J.League Online Store - EC Expansion Development Department (ECEXD)
  • Software Engineer, Data Management Platform - Global Ad Technology Supervisory Department (GATD)
  • DX Solution Lead Engineer - Backoffice Business Support Section, Business Support Development Department (BSD)

Частые вопросы на собеседовании

  • Как ты организуешь tagging образов в проде? Почему latest в проде — плохо?
  • Зачем контейнер должен писать логи в stdout/stderr, а не в файл?
  • Контейнер в Restarting бесконечно. Алгоритм действий?
  • Контейнер потребляет 8 ГБ памяти и его убивает OOM. Где смотришь и как лимитируешь?