Tool.Yun
Зручні інструменти для розробників
CSV в JSON
JS в JSON
JSON в C#
JSON в CSV
JSON в Go
JSON в JS
JSON в TOML
JSON в об'єкт
JSON до MessagePack
JSON до TS
JSON до даних
JSON у .env
JSON у Java
JSON у PHP-масив
JSON у XML
JSON у схему
Json до SQL DDL
Json на Python
Json у PHP код
Json-запит
ObjGen у JSON
PHP-масив у JSON
tools.json-patch.name
Аналізатор розміру JSON
Екранування/Розекранування JSON
Зведення/розведення JSON
Злиття JSON
Конвертер JSON в YAML
Конвертер JSON рядків
Лінтер JSON
Майстер сортування JSON
Мінімізація JSON
Пакування повідомлень у JSON
Порівняння JSON
Редактор JSON
Тестер Jq/JSONPath
Форматування JSON
PDF-компресор
PDF-конкатенер
Екстрактор сторінок PDF
Екстрактор тексту PDF
З HTML у PDF
Лінеаризація PDF/Швидкий веб
Перевірка підпису PDF
Розблокування PDF
Шифрування PDF
TOML в JSON
TOML в YAML
TOML-лінтер
ObjGen у HTML
XML у JSON
XML-лінтер
Тестер XPath
Тестер XSLT
Форматування XML
YAML в TOML
Зведення/розведення YAML
Злиття YAML
Конвертер YAML в JSON
Форматування YAML
Вибір карт
Кидок кубика
Колесо фортуни
Монетний кидок
HTML WYSIWYG редактор
HTML до даних
MIME типи
Інформація про пристрій
Генератор SVG placeholder
Генератор UTM URL
Генератор градієнтів CSS
Генератор текстових фрагментів URL
Дефангер URL
Екранування HTML сутностей
З HTML до XHTML
Зображення у CSS
Коди стану HTTP
Кодування/декодування URL-форматованих рядків
Колесо кольорів
Конвертер CSS XPath
Конвертер REM у пікселі
Конвертер кольорів
Конвертер одиниць CSS
Мініфікатор HTML
Очищувач HTML
Очищувач URL
Парсер User-agent
Перевірка контрастності кольорів
Перетворення рядка (slug)
Форматувач CSS
Форматувач HTML
Калькулятор відсотків
Калькулятор гео-дистанції
Калькулятор співвідношення сторін
Конструктор бенчмарків
Генератор BIP39 паролів
Генератор NanoID
Генератор OTP кодів
Генератор PIN-кодів
Генератор UUID
Генератор випадкових чисел
Генератор нумеронімів
Генератор паролів
Генератор паролів Diceware
Генератор токенів
Конвертер UUID
Валідатор Luhn
Валідатор номерів ПДВ
Валідатор та парсер IBAN
Валідатор та парсер ISBN
Калькулятор SLA
Калькулятор ІМТ
Калькулятор темпу бігу
Конвертер валют
Конвертер календарів
Конвертер чисел RMB
Онлайн-словник
Парсер та форматувач телефонів
Перевірка кредитних карток
Пошук Unicode
Пошук кодів країн ISO 3166
Пошуковий інструмент ISO 639
Поясніть команду оболонки
Рекомендації IES з освітлення
Сумісність ліцензій програмного забезпечення
Cron/Будильник на будні
Будильник часу
Генератор ICAL
Зворотний відлік
Калькулятор ETA
Калькулятор TTL
Калькулятор дати+тривалості
Калькулятор днів
Калькулятор тривалості
Конвертер дати та часу
Конвертер номерів тижнів
Конвертер часових поясів
Об'єднувач iCal
Парсер ICAL файлів
Хронометр
Який день?
Docker Compose у Kubernetes
Docker Compose у квадлети
Docker Compose у файл .env
Docker run у Kubernetes
Docker запуск до квадлетів
Валідатор Docker Compose
Від перевірки Docker до запуску Docker
Генератор RBAC Kubernetes
Генератор міток Dockerfile
Завантажувач образів Docker
Конвертер Docker Compose у Docker run
Конвертер Docker run в Docker compose
Конвертер формату Docker Compose
Конструктор творів у Traefik Docker
Мітки Docker Pangolin
Конструктор виразів Cron
GIF у MP4
OCR зображень та PDF
Інвертор кольору зображення
Видалення EXIF
Видалити фон зображення
Водяний маркер
Запис з камери
Зміна розміру зображення
Зображення у SVG (potrace)
Конвертер HEIC
Конвертер ICO/PNG
Конвертер зображень
Обрізати зображення
Попередній перегляд SVG
Порівняння зображень
Читач EXIF/метаданих зображень
CSV до даних
Excel до даних
Torrent у Magnet
Генератор ULID
Конвертер Base64 Hex масивів
Конвертер багатьох одиниць
Конвертер властивостей
Конвертер географічних координат
Конвертер дБм мВт
Конвертер одиниць зберігання даних
Конвертер римських цифр
Конвертер рядків base64
Конвертер символів Unicode у Java сутності
Конвертер файлів Base64
Конвертер форматів змінних середовища
Конвертер числових систем
Нормалізатор електронної пошти
Обчислювач енергії
Текст у Unicode
Текст у двійковий ASCII
AGE Криптографія
Argon2 Хешер
Bcrypt
PGP шифрування
RSA шифрування
RSA/DSA/ECDSA підпис та перевірка
SAML-парсер
Байти Niceware для парольної фрази
Генератор CSR
Генератор Hmac
Генератор JWT
Генератор PGP ключів
Генератор RSA ключів
Генератор X509 сертифікатів
Генератор ключів ECDSA
Генератор ключів Ed25519
Енкодер/декодер Bech32
Калькулятор CRC
Конвертер SSL сертифікатів
Парсер JWT
Парсер сертифікатів/ключів
Пасето/PASERK Місцевий
Пасето/ПАСЕРК Державний/Приватний
Таємний обмін Шамірами
Хешування тексту
Хешування файлів
Шифрування / дешифрування тексту
Шифрування рядків Jasypt
Шифрування файлів PGP
Шифрування/дешифрування Ansible Vault
Бінарний калькулятор
Візуалізатор тригонометричних/рівняльних кривих
Калькулятор чайових
Конвертер математичних форматів
Математичне розпізнавання символів (OCR)
Оцінювач математичних виразів
BIMI DNS Generator
CIDR IPv4/6 у діапазон IP
DKIM DNS Generator
DNS запити
IPv4-6/IPRange/CIDR у IPRange/CIDR/IPMask
SIP-авторизація
tools.restic-command-generator.name
tools.url-redirection-checker.name
Аналізатор надійності пароля
Візуальний калькулятор підмережі
Генератор Apache LogRotate
Генератор Crontab
Генератор DNS DMARC
Генератор DNS PTR
Генератор FStab
Генератор HTAccess
Генератор Htpasswd/Htaccess
Генератор IPv6 ULA
Генератор Iptables
Генератор MAC-адрес
Генератор Option43
Генератор Rsync
Генератор SPF DNS
Генератор WPA PSK
Генератор базової автентифікації
Генератор випадкових портів
Генератор команд Curl
Генератор команд UFW
Генератор команд вимкнення
Генератор командного рядка firewalld
Генератор конфігурацій Wireguard
Геолокація IP
Декодер ARPA
Декодер X-VR-SpamCause
Діапазон IPv4/6 у CIDR
Завантажувач за кількома посиланнями
Запити DNS/RDAP до Cloudflare
Калькулятор HDD
Калькулятор RAID
Калькулятор RAID-масивів ZPOOL
Калькулятор chmod
Калькулятор виключення підмереж IP
Калькулятор надійності RAID
Калькулятор підмереж IPv4
Калькулятор підмереж IPv6
Калькулятор швидкості передачі даних
Команди оболонки Лінеаризатор
Конвертер IPv4 адрес
Конвертер IPv6 адрес
Конвертер MAC-адрес
Конвертер Punycode
Лістер підмереж IPv4
Моя IP-адреса
Надійність пароля Zxcvbn
Номери портів
Перевірка DNSBL
Перевірка Whois
Пошук MAC-адреси
Пінг
Розширювач діапазону IPv4
Санітизатор HAR
Тестер WebSocket
Тестер мікрофона
Тестер портів TCP/UDP
Форматування команд оболонки
Форматувач Nginx
Цілі числа у IPv4/IPv6
Шпаргалка ZPool
CSS/JS Прикрашання та мінімізація
Json в SQL INSERT
Json до Protobuf
Json у Typescript
Генератор GitIgnore
Генератор атрибутів Git
Генератор мета-тегів Open Graph
Генератор параметрів SQL
Генератор поштових адрес
Генератор секретів Django
Генератор скриптів для навантажувального тестування K6
Генератор таблиць бази даних
Генератор фавіконок
Деобфускатор/Розпаковувач Javascript
Ескейпер рядка
Конвертер Curl
Конвертер котирувань
Конвертер файлів HEX
Конструктор рядків підключення до бази даних
Конструктор створення баз даних
Мініфікатор SQL
Обфускатор Javascript
Підсвічувач коду/скриптів
Редактор команд CLI
Роздільник файлів
Таймер Pomodoro
Тестер API
Тестер PicoMatch
Тестер втечі ANSI
Тестер інтерфейсу користувача Swagger
Фальсифікатор даних
Форматування SQL
Форматувач Javascript
Форматувач стек-трас
Інформація про код кнопки
Аналізатор звітів DMARC
Визначення типу файлу
Генератор TCPDump
Декодер EMV TLV
Декодер Safelink Outlook
Декодер посилань Sharepoint
Декодер транзакцій ETH
Детектор/декодер кодування тексту
Екстрактор Snowflake ID
Калькулятор резисторів
Конвертер GZip/Deflate
Конвертер Hex
Конвертер MIME кодування
Конвертер Middle-Endian
Конвертер MongoDB ObjectId
Конвертер SMART Raw
Конвертер чисел з плаваючою комою
Консоль послідовного порту
Конструктор URL-адрес
Конструктор команд Nmap
Маскування конфіденційних даних
Парсер Outlook MSG
Парсер URL
Парсер відмов пошти
Парсер електронної пошти
Парсер файлів cookie
Пошук властивостей ActiveDirectory LDAP
Розширювач коротких URL-адрес
Тестер DNS
Тестер HTTPS
Тестер мертвих пікселів
Тестер поширення DNS
Читач файлів Parquet
Шпаргалка з підключення RJ45 Cat6
键盘测试器
ASCII текстовий малювальник
JSON до TOON
TOON у JSON
Tab до пробілів
Вибір емодзі
Випадковий вибір рядків
Витяг тексту з HTML
Генератор Lorem ipsum
Генератор команд Sed
Генератор цитат
Генератор/Банер Zalgo
Діаграма структури папок
Експортер Mermaid
Зображення у ASCII арт
Зчитувач RSVP
Калькулятор Левенштейна
Кодер/декодер токенів GPT
Конвертер коду Морзе
Конвертер регістру
Конвертер розкладки клавіатури
Конвертер рун
Конвертер списків
Обфускація рядка
Оцінювач токенів GPT
Пакування файлів для ШІ
Перевірка I та L
Перекладач тексту
Порівнювач списків
Порівняння текстів
Порівняння шрифтів
Поширення посилань у соціальних мережах
Пошук дублікатів рядків
Розділювач AI підказок
Розумний замінник тексту
Різні слова
Статистика тексту
Текст у алфавіт НАТО
Текст у форматі Unicode
Тестер Regex
Форматувач Unicode
Юнікод до GSM-7
Epub у Markdown
HTML у Markdown
Markdown у HTML
tools.markdown-format-converter.name
Вставка як Markdown
Генератор змісту Markdown
Генератор таблиць Markdown
Знижка Lorem Ipsum
Знижка до даних
Попередній перегляд Markdown
Прикрашач таблиці Markdown
Редактор Markdown
Розцінка в текст
Різниця уцінки
Уцінка до DOCX
Конвертер енергії їжі
Конвертер об'ємної витрати
Конвертер одиниць довжини
Конвертер одиниць енергії
Конвертер одиниць кутів
Конвертер одиниць маси
Конвертер одиниць об'єму
Конвертер одиниць площі
Конвертер одиниць потужності
Конвертер одиниць сили
Конвертер одиниць тиску
Конвертер освітленості
Конвертер префіксів СІ
Конвертер прискорення
Конвертер температури
Конвертер швидкості
Перетворювач частоти
Фітнес-комп'ютер
Калькулятор амортизації
Шпаргалка Bash
Шпаргалка CSS селекторів
Шпаргалка Docker
Шпаргалка Docker SWARM
Шпаргалка Dockerfile
Шпаргалка Git
Шпаргалка JSONPath
Шпаргалка Jq
Шпаргалка Markdown
Шпаргалка Nano
Шпаргалка Nginx
Шпаргалка Powershell
Шпаргалка Regex
Шпаргалка Sed
Шпаргалка VIM
Шпаргалка XPath
Шпаргалка для K8s
Шпаргалка з екранних команд
Шпаргалка загальних регулярних виразів
Шпаргалка по Docker Compose
Шпаргалка по команді Tmux
Шпаргалка по команді Zellij
Шпаргалка по команді chmod
Шпаргалка по семантичному коміту в Git
tools.epc-qrcode-generator.name
Валідатор GTIN
Генератор QR-кодів
Генератор QR-кодів для WiFi
Генератор QR-кодів для контактної інформації
Генератор штрих-кодів
Декодер QR-кодів
Зчитувач штрих-кодів

Шпаргалка по Docker Compose

Шпаргалка з формату Docker Compose

Docker Compose describes a multi-container application in one YAML file and runs it with a single command. The file declares services (containers), plus the networks, volumes, secrets and configs they use.

ℹ️ The version: key at the top is obsolete — the Compose Spec ignores it. Start the file with services:.

📁 File Names & Precedence

FileRole
compose.yamlThe preferred name (compose.yml also works)
docker-compose.yamlLegacy name, still supported
compose.override.yamlMerged on top of the base file automatically
-f a.yaml -f b.yamlExplicit list; later files override earlier ones
.envVariables for interpolation, read from the project directory
# check what Compose actually resolved, after merges and interpolation
docker compose config

# use a specific set of files
docker compose -f compose.yaml -f compose.prod.yaml up -d

YAML rules that bite

  • Two spaces per indent level, never tabs
  • Keys and values are case-sensitive
  • Lists use -; quote any string containing :, #, {, } or a leading *
  • yes/no/on/off are booleans — quote them if you mean the words

🧱 Minimal Structure

services:
  web:
    image: nginx:1.27
    ports:
      - '8080:80'
    depends_on:
      - api

  api:
    build: .
    environment:
      DATABASE_URL: postgres://db:5432/app
    networks:
      - backend

networks:
  backend:

volumes:
  db-data:

⚙️ Service Options

services:
  app:
    # where the image comes from
    image: myapp:1.2
    build: .
    pull_policy: always

    # identity and lifecycle
    container_name: myapp
    hostname: app
    restart: unless-stopped
    init: true
    stop_grace_period: 30s

    # what it runs
    entrypoint: ['/entrypoint.sh']
    command: ['node', 'server.js']
    working_dir: /app
    user: '1000:1000'

    # configuration
    environment:
      NODE_ENV: production
      API_KEY: ${API_KEY}
    env_file:
      - .env
      - .env.production

    # connectivity
    ports:
      - '8080:80'
    expose:
      - '9000'
    networks:
      - frontend
    extra_hosts:
      - 'host.docker.internal:host-gateway'
    dns:
      - 1.1.1.1

    # storage
    volumes:
      - db-data:/var/lib/data
      - ./src:/app/src:ro
    tmpfs:
      - /tmp

    # ordering and health
    depends_on:
      db:
        condition: service_healthy
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost/health']
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 20s

    # host access and limits
    cap_add:
      - SYS_PTRACE
    devices:
      - /dev/dri:/dev/dri
    ulimits:
      nofile: 65535
    deploy:
      resources:
        limits:
          cpus: '1.5'
          memory: 512M

    # bookkeeping
    labels:
      com.example.team: platform
    logging:
      driver: json-file
      options:
        max-size: '10m'
        max-file: '3'

🏗 Build Options

services:
  app:
    build:
      context: .
      dockerfile: docker/Dockerfile
      target: production
      args:
        NODE_VERSION: '22'
      cache_from:
        - myapp:cache
      secrets:
        - npmrc
      platforms:
        - linux/amd64
        - linux/arm64
    image: myapp:1.2 # the name given to the built image

📦 Volumes

services:
  db:
    volumes:
      # named volume — managed by Docker, survives 'down'
      - db-data:/var/lib/postgresql/data
      # bind mount — a host path, read-only
      - ./config:/etc/app:ro
      # anonymous volume — keeps node_modules out of the bind mount above
      - /app/node_modules
      # long syntax
      - type: bind
        source: ./src
        target: /app/src
        read_only: true

volumes:
  db-data:
  shared:
    external: true # created outside Compose
  nfs-data:
    driver_opts:
      type: nfs
      o: addr=10.0.0.10,rw
      device: ':/exports/data'

🌐 Networks

services:
  web:
    networks:
      - frontend
  api:
    networks:
      frontend:
        aliases:
          - api.internal
      backend:

networks:
  frontend:
    driver: bridge
  backend:
    internal: true # no outbound access
  existing:
    external: true
    name: some-other-network

💡 Compose creates a default network per project and every service joins it, so containers already reach each other by service name. Declare networks when you want to separate things.

🔀 Ports

services:
  web:
    ports:
      - '8080:80' # host:container
      - '127.0.0.1:8080:80' # bind to one interface only
      - '8080-8090:80-90' # a range
      - '80' # random host port
      - target: 80 # long syntax
        published: '8080'
        protocol: tcp
        mode: host

🧬 Environment Variables

services:
  app:
    environment:
      # map form (preferred)
      LOG_LEVEL: debug
      # take the value from the shell or .env
      API_KEY: ${API_KEY}
      # with a default, and a hard requirement
      PORT: ${PORT:-3000}
      DB_URL: ${DB_URL:?DB_URL must be set}
    env_file:
      - path: .env.production
        required: false
# variables come from the shell, .env, and --env-file, in that order of precedence
API_KEY=abc docker compose up -d
docker compose --env-file .env.staging up -d

🩺 Healthchecks & Startup Order

depends_on on its own only waits for the container to start. Wait for it to be healthy instead:

services:
  db:
    image: postgres:16
    healthcheck:
      test: ['CMD-SHELL', 'pg_isready -U postgres']
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

  api:
    image: myapi
    depends_on:
      db:
        condition: service_healthy # or service_started, service_completed_successfully

🔄 Restart Policies

PolicyBehaviour
noNever restart (the default)
on-failureRestart only on a non-zero exit — on-failure:5 to cap tries
alwaysAlways restart, including after a daemon restart
unless-stoppedLike always, but stays stopped if you stopped it yourself

🧩 Profiles

Profiles keep optional services out of the way until you ask for them.

services:
  web:
    image: nginx # no profile: always started

  debug:
    image: busybox
    command: top
    profiles: [debug]

  seed:
    image: myapp
    command: npm run seed
    profiles: [tools]
# start the default services plus one profile
docker compose --profile debug up -d

# several at once
docker compose --profile debug --profile tools up -d

# COMPOSE_PROFILES works too
COMPOSE_PROFILES=debug,tools docker compose up -d

👀 Watch Mode

docker compose watch syncs or rebuilds automatically as you edit — a dev loop without bind-mount surprises.

services:
  web:
    build: .
    develop:
      watch:
        - action: sync
          path: ./src
          target: /app/src
        - action: rebuild
          path: package.json
        - action: sync+restart
          path: ./config
          target: /etc/app
docker compose watch

♻️ Reuse: include, extends & anchors

# pull in another compose file as if it were written here
include:
  - path: ./monitoring/compose.yaml

services:
  # inherit another service's definition
  worker:
    extends:
      file: common.yaml
      service: base-app
    command: ["node", "worker.js"]

# YAML anchors for repeated blocks
x-logging: &default-logging
  driver: json-file
  options:
    max-size: "10m"

services:
  api:
    logging: *default-logging
  web:
    logging: *default-logging

🔐 Secrets & Configs

File-based secrets work in plain Compose: each one is mounted read-only at /run/secrets/<name>. External secrets and configs require Swarm.

services:
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_password
    configs:
      - source: pg_conf
        target: /etc/postgresql/postgresql.conf

secrets:
  db_password:
    file: ./db_password.txt
  api_token:
    external: true # Swarm only

configs:
  pg_conf:
    file: ./postgresql.conf

🖥 GPU & Device Access

services:
  # NVIDIA — needs the NVIDIA Container Toolkit on the host
  cuda-app:
    image: nvidia/cuda:12.4.1-base-ubuntu22.04
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all # or: device_ids: ["0"]
              capabilities: [gpu]

  # Intel iGPU — VAAPI/OpenCL through the render device
  igpu-app:
    image: intel/openvino
    devices:
      - /dev/dri:/dev/dri
    group_add:
      - video

🚀 Everyday Commands

# start everything in the background
docker compose up -d

# rebuild the images first
docker compose up -d --build

# start one service and what it depends on
docker compose up -d <service>

# recreate containers even if nothing changed
docker compose up -d --force-recreate

# stop and remove containers and networks
docker compose down

# also remove the named volumes and local images
docker compose down -v --rmi local

# what is running, including health
docker compose ps

# follow the logs
docker compose logs -f
docker compose logs -f --tail 100 <service>

# a shell inside a running service
docker compose exec <service> sh

# a one-off container for a task
docker compose run --rm <service> npm test

# rebuild, pull, restart
docker compose build --no-cache
docker compose pull
docker compose restart <service>

# scale a stateless service
docker compose up -d --scale worker=3

# validate and print the effective configuration
docker compose config
docker compose config --services

# processes and resource usage
docker compose top
docker compose stats

⚔️ Compose vs Swarm Stacks

Both read a Compose file, but docker stack deploy honours a different subset of it.

Keydocker composedocker stack deploy
build:✅ builds locally❌ ignored — push the image to a registry first
restart:✅❌ use deploy.restart_policy
depends_on:✅❌ ignored — rely on health checks and retries
profiles:✅❌
develop.watch:✅❌
deploy.replicas/placement❌ ignored✅ this is how you scale
configs: / external secrets:❌ external ones need Swarm✅
healthcheck:✅✅ also drives rescheduling
volumes: / networks:✅✅ (overlay networks in Swarm)

🧭 Keep compose.yaml for local development and a separate stack.yaml for Swarm, or put the Swarm-only bits in an override file.

📚 Resources

  • Compose file reference
  • docker compose CLI reference
  • Compose watch
  • Environment variables and interpolation
  • NVIDIA Container Toolkit