Tool.Yun
Geliştiriciler için kullanışlı araçlar
ActiveDirectory LDAP özellik arayıcısı
DMARC Rapor Analizcisi
DNS Test Cihazı
DNS Yayılım Test Cihazı
Direnç Hesaplayıcısı
Dosya Türü Algılayıcı
E-posta Ayrıştırıcısı
EMV TLV kod çözücü
ETH İşlem Kod Çözücü
GZip/Deflate dönüştürücü
Geri Dönen E-posta Ayrıştırıcısı
HTTPS Test Cihazı
Hassas veri maskeleyici
Hex Kodlayıcı/Kod Çözücü
Kar Tanesi Kimlik Çıkarıcı
Kayan nokta sayı dönüştürücü
Keycode bilgisi
Kısa URL Genişletici
MIME Kodlama Dönüştürücü
Metin Karakter Seti Algılayıcı/Kod Çözücü
MongoDB ObjectId Dönüştürücü
Nmap Komut Oluşturucu
Orta-Endian Dönüştürücü
Outlook MSG Ayrıştırıcısı
Outlook Safelink kod çözücü
Parke dosyaları Okuyucu
RJ45 Cat6 Kablolama Hızlı Referans Kılavuzu
SMART Raw Dönüştürücü
Seri Port Konsolu
SharePoint Paylaşım URL Kod Çözücü
TCPDump Oluşturucu
URL Oluşturucu
URL ayrıştırıcısı
Çerez Ayrıştırıcısı
Ölü Piksel Test Cihazı
键盘测试器
ARPA Kod Çözücü
Apache LogRotate Oluşturucu
BIMI DNS Oluşturucu
Chmod hesaplayıcısı
Cloudflare DNS/RDAP Sorguları
Crontab oluşturucu
Curl Komut Üreticisi
DKIM DNS Oluşturucu
DMARC DNS Oluşturucu
DNS Sorguları
DNSBL Denetleyicisi
FStab Jeneratörü
Görsel Alt Ağ Hesaplayıcı
HAS Dezenfektan
HDD hesaplayıcısı
HTAccess oluşturucu
Htpasswd/htaccess üreteci
IP Adresim
IP Alt Ağları Hariç Tutma Hesaplayıcısı
IP Coğrafi Konum
IPv4 Alt Ağ Listeleyicisi
IPv4 adres dönüştürücü
IPv4 alt ağ hesaplayıcısı
IPv4 aralık genişletici
IPv4-6/IPRange/CIDR, IPRange/CIDR/IPMask'ta
IPv4/6 Aralığı CIDR(ler) Hesaplayıcısı
IPv6 ULA üreteci
IPv6 adres dönüştürücü
IPv6 alt ağ hesaplayıcısı
Iptables Üreticisi
Ipv4/6 CIDR - IP Aralığı Hesaplayıcısı
Kabuk Komutları Biçimlendiricisi
Kabuk Komutları Doğrusallaştırıcı
Kapatma Komutu Oluşturucu
MAC Adresi Dönüştürücü
MAC adresi araması
MAC adresi üreteci
Mikrofon Test Cihazı
Nginx biçimlendirici
Option43 jeneratörü
PTR DNS Oluşturucu
Ping
Port Numaraları
Punycode Dönüştürücü
RAID Güvenilirlik Hesaplayıcısı
RAID Hesaplayıcı
Rastgele port oluşturucu
Rsync Üreticisi
SIP Yetkilendirmesi
SPF DNS oluşturucu
TCP/UDP Port Test Cihazı
Tam Sayılardan IPv4/IPv6'ya
Temel kimlik doğrulama oluşturucu
UFW Komut Üreticisi
Veri Aktarım Hızı Hesaplayıcı
WPA PSK üreteci
Websocket testi
Whois Denetleyicisi
Wireguard Yapılandırma Oluşturucu
X-VR-SpamCause Kod Çözücü
ZPOOL RAID hesaplayıcısı
ZPool Hile Sayfası
Zxcvbn Şifre Gücü
firewalld komut satırı oluşturucu
tools.restic-command-generator.name
tools.url-redirection-checker.name
Çoklu bağlantı indirici
Şifre gücü analizi
Barkod Okuyucu
Barkod üreteci
GTIN Doğrulayıcı
QR Kod çözücü
QR Kod üreteci
QR İletişim Bilgisi Oluşturucu
WiFi QR Kodu üreteci
tools.epc-qrcode-generator.name
AGE Kriptografisi
Ansible Vault şifreleme şifresini çözme
Argon2 Karıştırıcı
Bcrypt
Bech32 Kodlayıcı/Kod Çözücü
CRC hesaplayıcısı
CSR Üreticisi
Dosya Karıştırıcı
ECDSA anahtar çifti oluşturucu
Ed25519 anahtar çifti üreteci
Hmac oluşturucu
JWT Jeneratörü
JWT ayrıştırıcısı
Jasypt Dize Şifrelemesi
Karma metin
Metni Şifrele/Çöz
Niceware Baytlarını Parolaya Dönüştürme
PGP Dosya Şifrelemesi
PGP anahtar üreticisi
PGP şifrelemesi
Paseto/PASERK Kamu/Özel
Paseto/PASERK Yerel
RSA anahtar çifti üreteci
RSA şifrelemesi
RSA/DSA/ECDSA İmzalayan ve Doğrulayan
SAML Ayrıştırıcısı
SSL Sertifika dönüştürücü
Sertifika/Anahtar ayrıştırıcısı
Shamir'in Gizli Paylaşımı
X509 sertifika oluşturucu
Base64 Hex dizi kodlayıcı/kod çözücü
Base64 dosya dönüştürücü
Base64 metin şifreleyici/çözücü
CSV'den Veriye
Coğrafi Koordinat Dönüştürücü
E-posta normalleştirici
Enerji Tüketimi ve Gider Bilgisayarı
Excel'den veriye
Metinden UTF-8 ikilisine
Metinden Unicode'a
Roma rakamı dönüştürücü
Tam sayı taban dönüştürücü
Torrent'ten Mıknatısa
ULID üreteci
Unicode Karakterlerini Java Varlıklarına Dönüştürücü
Veri Depolama Birimi dönüştürücü
dBm mW Dönüştürücü
Çevre Değişkenleri Biçim Dönüştürücü
Çok Birim Dönüştürücü
Özellikler dönüştürücü
Amortisman Hesaplayıcısı
Alan Birimleri Dönüştürücü
Aydınlatma Dönüştürücü
Açı Birimleri Dönüştürücü
Basınç Birimleri Dönüştürücü
Enerji Birimleri Dönüştürücü
Fitness Bilgisayarı
Frekans Dönüştürücü
Güç Dönüştürücü
Gıda Enerji Dönüştürücü
Hacim Akış Hızı Dönüştürücü
Hacim Birimleri Dönüştürücü
Hız Dönüştürücü
Hızlanma Dönüştürücü
Kuvvet Birimleri Dönüştürücü
Kütle Birimleri Dönüştürücü
SI Önekleri Dönüştürücü
Sıcaklık dönüştürücü
Uzunluk Birimleri Dönüştürücü
ANSI Kaçış Test Cihazı
API Testleri
Açık grafik meta üreteci
Bukle Dönüştürücü
CSS/JS Güzelleştirme ve Küçültme
Cli komut düzenleyicisi
Django Gizli Üreticisi
Dosya Bölücü
Favicon Oluşturucu
GitIgnore Oluşturucu
Gitattributes Generator
HEX Dosya Dönüştürücü
Javascript Gizleyici
Javascript Güzelleştirici
Javascript Unobfuscator/Unpacker
Json'dan Protobuf'a
Json'dan SQL'e INSERT
Json'dan Typescript'e
K6 Yük Testi Komut Dosyası Oluşturucu
Kod/Komut Dosyası Vurgulayıcı
Mailto Oluşturucu
Picomatch Test Cihazı
Pomodoro Zamanlayıcısı
SQL Küçültücü
SQL Parametreleri Oluşturucu
SQL güzelleştirici
Stacktrace daha güzel
Swagger kullanıcı arayüzü test kullanıcısı
Teklif Dönüştürücü
Veri Sahtekarı
Veritabanı Bağlantı Dizesi Oluşturucu
Veritabanı Oluşturma Aracı
Veritabanı Tablosu Oluşturucu
İp Kaçışı
EXIF'i kaldır
Filigran
GIF'ten MP4'e
Görüntü Arka Planını Kaldır
Görüntü EXIF/Meta Veri/GPS/JPEG Kalite okuyucu
Görüntü Formatları Dönüştürücü
Görüntü Karşılaştır
Görüntü Renk Çeviricisi
Görüntü yeniden boyutlandırıcı
Görüntüden SVG'ye (potrace)
Görüntüyü ve PDF'yi OCRize edin
HEIC Dönüştürücü
ICO/PNG dönüştürücü
Kamera kaydedici
Resmi kırp
SVG Önizleyici
Bash Hile Sayfası
CSS Seçiciler Hile Sayfası
Docker Compose hile sayfası
Docker Hile Sayfası
Docker SWARM hile sayfası
Dockerfile hile sayfası
Ekran Komutları Hızlı Referans Kılavuzu
Git Semantik Commit Hile Sayfası
Git hatırlatma notu
JSONPath Sözdizimi Hile Sayfası
Jq Hile Sayfası
K8s Hile Sayfası
Markdown Hile Sayfası
Nano Hile Sayfası
Nginx Hile Sayfası
PowerShell Hızlı Başvuru Kılavuzu
Regex hile sayfası
Sed hile sayfası
Tmux Komutları Hızlı Referans Kılavuzu
VIM Hile Sayfası
XPath Sözdizimi Hile Sayfası
Yaygın Regex Hile Sayfası
Zellij Komut Hile Sayfası
chmod Komut Hile Sayfası
CSV'den JSON'a
JS'den JSON'a dönüştürücü
JSON Birleşmesi
JSON Düzleştirici/Düzleştirmeyi Kaldırıcı
JSON Editörü
JSON Linter
JSON farkı
JSON güzelleştirme ve biçimlendirme
JSON küçültme
JSON nesneye
JSON sıralama ustası
JSON to CSV
JSON to Go
JSON'dan .env'ye
JSON'dan C#'a
JSON'dan JS'ye dönüştürücü
JSON'dan Java Varlığına
JSON'dan MessagePack'e
JSON'dan TOML'a
JSON'dan TS'ye
JSON'dan Verilere
JSON'dan XML'e
JSON'dan YAML'ye dönüştürücü
Jq/JSONPath Test Cihazı
Json Boyut Analizcisi
Json Kaçış/Kaçış Kaldırıcı
Json Sorgusu
Json dize dönüştürücü
Json'dan PHP Dizisine
Json'dan PHP Koduna
Json'dan Python'a
Json'dan SQL'e DDL
Json'dan Şemaya
Mesaj Paketini JSON'a Dönüştür
ObjGen'den JSON'a
PHP Dizisini JSON'a Dönüştürme
tools.json-patch.name
BIP39 şifre oluşturucu
Diceware Şifre Oluşturucu
NanoID üreteci
OTP kod üreteci
Parola Üreticisi
Pin Kodu Üreticisi
Rastgele sayı üreteci
Sayı üreteci
Token Oluşturucu
UUID dönüştürücü
UUID üreteci
Docker Compose Doğrulayıcı
Docker Compose Format Dönüştürücü
Docker Compose'dan Docker run dönüştürücüsüne
Docker Compose'dan Quadlet'lere
Docker Compose'u .env dosyasına dönüştürme
Docker Compose'u Kubernetes'e dönüştürme
Docker Görüntü İndirici
Docker Pangolin Etiketleri
Docker çalıştırma ve Docker oluşturma dönüştürücüsü
Docker'ı Docker'a denetle
Docker, Kubernetes'e çalıştırılıyor
Docker, Quadlet'lere koşuyor
Dockerfile Etiket Oluşturucu
Kubernetes RBAC Oluşturucu
Traefik Docker Compose Maker
Bahşiş hesaplayıcı
Matematik Formatları Dönüştürücü
Matematik OCR
Matematiksel ifade hesaplayıcı
Trigonometrik/Denklem Eğrisi Görselleştirici
İkili Hesap Makinesi
Fal çarkı
Kart Seçici
Madeni Para Atma Makinesi
Zar Atıcı
HTML'den PDF'ye
PDF Birleştirici
PDF Doğrusallaştır/HızlıWeb
PDF Metin Çıkarıcı
PDF Sayfa Çıkarıcı
PDF Sıkıştırıcı
PDF imza denetleyicisi
PDF Şifreleme
PDF Şifresini Çöz ve Kilidini Aç
TOML Linter
TOML'den JSON'a
TOML'den YAML'ye
Cron/Hafta İçi Alarmı
ETA hesaplayıcı
Geri sayım
Gün Hesaplayıcısı
Hafta Sayıları Dönüştürücü
Hangi Gün?
ICAL Dosya Ayrıştırıcısı
ICAL Jeneratörü
Kronometre
Saat Dilimi Dönüştürücü
Süre Hesaplayıcısı
TTL hesaplayıcısı
Tarih+Süre Hesaplayıcısı
Tarih-saat dönüştürücü
Zaman Alarmı
iCal Birleşmesi
Cron İfade Oluşturucu
BMI Hesaplayıcı
Döviz Dönüştürücü
IBAN doğrulayıcı ve ayrıştırıcı
IES Aydınlatma Yönergeleri
ISBN Doğrulayıcı ve Ayrıştırıcı
ISO 3166 Ülke Kodları Arama Aracı
ISO 639 Arama Aracı
KDV Numaraları Doğrulayıcı
Kabuk Komutlarını Açıklayın
Koşu Hızı Hesaplayıcı
Kredi Kartı Denetleyicisi
Luhn Doğrulayıcı
RMB Büyük Harf Dönüştürücü
SLA hesaplayıcısı
Takvim Dönüştürücü
Telefon ayrıştırıcı ve biçimlendirici
Unicode Arama
Yazılım lisans uyumluluğu
Çevrimiçi Sözlük
CSS Birim Dönüştürücü
CSS Gradyan Oluşturucu
CSS XPath Dönüştürücü
CSS güzelleştirici
Cihaz bilgileri
Görüntüden CSS'ye
HTML Güzelleştirici
HTML Küçültücü
HTML WYSIWYG düzenleyici
HTML temizleyici
HTML varlıklarından kaçış
HTML'den XHTML'e
HTML'den veriye
HTTP durum kodları
Kullanıcı aracı ayrıştırıcısı
MIME türleri
REM Piksel dönüştürücü
Renk Kontrast Denetleyicisi
Renk dönüştürücü
Renk Çemberi
SVG placeholder oluşturucu
Slugify dizesi
URL Metin Arama Parçası Oluşturucu
URL Temizleyici
URL Yakalayıcı
URL biçimli dizeleri kodla/kodunu çöz
UTM URL Oluşturucu
ObjGen'den HTML'ye
XML Linter
XML biçimlendirici
XML'den JSON'a
XPath Test Cihazı
XSLT test cihazı
YAML Birleşmesi
YAML Düzleştirici/Düzleştirici
YAML güzelleştirici
YAML'den JSON'a dönüştürücü
YAML'den TOML'ye
AI için dosyaları paketle
AI İstemi Ayırıcı
ASCII Art Metin Oluşturucu
Akıllı Metin Değiştirici ve Satır Sonlandırıcı
Alıntı Oluşturucu
Denizkızı ihracatçısı
Dize karartıcı
Emoji seçici
Farklı Kelimeler
GPT Token Kodlayıcı/Kod Çözücü
GPT Token Tahmincisi
Görüntüden ASCII Sanatına
HTML'den metin çıkar
I ve L Denetleyicisi
JSON'dan TOON'a
Kasa dönüştürücü
Klasör Yapısı Diyagramı
Klavye Düzeni Dönüştürücü
Levenshtein Hesap Makinesi
Liste dönüştürücü
Listeleri Karşılaştır
Merhaba jeneratör.
Metin farkı
Metin istatistikleri
Metin Çevirmeni
Metinden Unicode Adlarına
Mors Kodu Dönüştürücü
NATO alfabesine metin
RSVP Okuyucusu
Rastgele Satır Seçici
Regex Test Cihazı
Rün dönüştürücü
Sed Komut üreteci
Sekme tuşuyla boşluklara geçin
Sosyal Bağlantı Paylaşıcısı
TOON'dan JSON'a
Unicode Biçimlendirici
Unicode'dan GSM-7'ye
Yazı Tipi Karşılaştır
Yinelenen Satır Bulucu
Zalgo Jeneratörü/Banner
Benchmark oluşturucu
Coğrafi mesafe hesaplayıcısı
En Boy Oranı Hesaplayıcısı
Yüzdelik Hesaplayıcı
Epub'dan Markdown'a
Html'den Markdown'a
Markdown Editörü
Markdown Farkı
Markdown Lorem Ipsum
Markdown Tablo Güzelleştirici
Markdown Tablosu Oluşturucu
Markdown olarak yapıştır
Markdown toc oluşturucu
Markdown önizlemesi
Markdown'dan DOCX'e
Markdown'dan HTML'ye
Markdown'dan Metne
Markdown'dan veriye
tools.markdown-format-converter.name

Docker Compose hile sayfası

Docker Compose format hile sayfası

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