Generator Docker Compose
Ręczne pisanie docker-compose.yml oznacza zapamiętanie dokładnego wcięcia, umieszczanie w cudzysłowie każdego mapowania portów oraz wiedzę, którą wersję pliku rozumie Twój program Compose. Ten generator pozwala definiować usługi za pomocą prostych pól: nazwy, obrazu, mapowań portów host:kontener oraz woluminów. Tworzy poprawny plik YAML zgodny z nowoczesną specyfikacją Compose (bez klucza wersji) i z rozsądnymi ustawieniami domyślnymi.
Jak zbudować plik Compose
-
1
Dodaj usługi
Dla każdej usługi podaj nazwę, obraz, mapowania portów host:kontener oraz woluminy. Dwie przykładowe usługi są już uzupełnione.
-
2
Popraw lub usuń wiersze
Edytuj dowolne pole bezpośrednio, dodaj kolejną usługę przyciskiem + Service albo usuń wiersz, którego nie potrzebujesz.
-
3
Sprawdź wygenerowany YAML
Podgląd aktualizuje się podczas pisania: mapowania portów są w cudzysłowie, a klucz wersji jest pomijany, zgodnie z nowoczesną specyfikacją Compose.
-
4
Skopiuj plik
Skopiuj wygenerowany docker-compose.yml i wklej go do katalogu głównego projektu.
Nowoczesna specyfikacja Compose
Compose V2 (wtyczka dostarczana z Docker Desktop i nowoczesnym Docker Engine) opiera się na Compose Specification. Klucz version: jest przestarzały; generator go pomija. Klucze najwyższego poziomu to services, networks, volumes, configs i secrets.
Anatomia usługi
Usługa zbliżona do produkcyjnej wygląda tak:
services:
web:
image: nginx:1.27-alpine
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./public:/usr/share/nginx/html:ro
depends_on:
app:
condition: service_healthy
networks:
- frontend
- backend
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://localhost/health"]
interval: 30s
timeout: 5s
retries: 3
Woluminy: montaż bezpośredni vs nazwany
- Montaż bezpośredni (
./app:/var/www) łączy kontener ze ścieżką na hoście; świetny do lokalnego rozwoju, bo zmiany są widoczne od razu. - Wolumen nazwany (
pgdata:/var/lib/postgresql/data) jest zarządzany przez Dockera i trwa niezależnie od ścieżek na hoście; właściwy wybór dla baz danych i wszystkiego, czego nie chcesz przypadkiem usunąć przezrm -rf. - Wolumen anonimowy - unikaj. Przetrwa restarty, ale znika bez ostrzeżenia po
docker compose down -v.
Sieci
Domyślnie Compose tworzy sieć nazwaną od projektu i podłącza do niej każdą usługę. Deklarowanie jawnych sieci przydaje się, gdy:
- chcesz odizolować bazę danych od usługi dostępnej publicznie;
- potrzebujesz mostka z własną podsiecią, aby dopasować się do istniejącej infrastruktury;
- chcesz podłączyć kontenery do istniejącej sieci zewnętrznej (
external: true).
Częste błędy, których warto unikać
- Konflikty klucza wersji.
version: "3.8"na górze uniemożliwia nowszym funkcjom, takim jakstart_intervalw healthchecku, działanie w starym Compose; generator pomija klucz wersji. - Cudzysłowy przy portach.
8080:80w niektórych przypadkach granicznych jest interpretowany jako YAML w systemie sześćdziesiątkowym (base-60); generator zawsze otacza mapowania portów cudzysłowem. - Wpisane na sztywno sekrety. Sekrety wpisane bezpośrednio do compose.yml trafiają do gita. Trzymaj je w
env_filelub w magazynie sekretów platformy. - depends_on bez warunku. Zwykłe
depends_on: [db]czeka na start kontenera, a nie na gotowość usługi. Użyjcondition: service_healthyi dodaj healthcheck do zależności.
Najczęściej zadawane pytania
Na aktualną Compose Specification (zgodną z Docker Compose V2). Plik pomija klucz version:, tak pisze się nowoczesne pliki Compose. Działa z Docker Compose V2.22 i nowszymi wersjami.
W tej wersji nie przez formularz. Generator skupia się na definicjach usług z obrazem, portami i woluminami. Sieci, zmienne środowiskowe, healthchecki i inne klucze możesz dodać do wygenerowanego YAML ręcznie przed użyciem.
Nie, to narzędzie skupia się na compose.yml. Do plików Dockerfile użyj Generatora Dockerfile, który zajmuje się wyborem obrazu bazowego i kolejnością instrukcji COPY/RUN dla pięciu technologii.
Nie. Definicje usług służą wyłącznie do zbudowania YAML na tej stronie. Nie są zapisywane, wysyłane ani udostępniane.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Ściągawka do Markdown
Praktyczna ściągawka Markdown z prawdziwym podglądem i przykładami gotowymi do skopiowania: nagłówki, listy, tabele, kod, linki, obrazy i składnia GFM.
Symulator licznika rozkazów
Śledź uproszczony listing instrukcji o stałej długości z etykietami, skokami, wywołaniami, powrotami i adresami 16-, 24- lub 32-bitowymi.
Konwerter ASCII na binarny
Konwertuj dowolny ciąg ASCII na reprezentację binarną. Każdy znak staje się ośmioma bitami, rozdzielonymi spacjami, gotowymi do wklejenia w ślad protokołu albo zadanie domowe.
Narzędzie jest dostępne w innych językach
- Docker Compose-generator [NL]
- Docker Compose 生成器 [ZH]
- Docker Compose Generator [EN]
- Generador de Docker Compose [ES]
- Docker Composeジェネレーター [JA]
- ตัวสร้าง Docker Compose [TH]
- Gerador de Docker Compose [PT]
- Docker-Compose-Generator [DE]
- Docker Compose Oluşturucu [TR]
- Générateur Docker Compose [FR]
- Generator Docker Compose [ID]
- Docker Compose-generator [SV]
- Docker Compose 생성기 [KO]
- مولّد Docker Compose [AR]
- Trình tạo Docker Compose [VI]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]