Docker Compose 생성기
이 스택에서 실행할 것
docker-compose.yml을 손으로 작성하려면 정확한 들여쓰기, 모든 포트 매핑의 따옴표, 그리고 현재 Compose 바이너리가 이해하는 버전 문자열을 기억해야 합니다. 이 생성기는 이름, 이미지, 호스트:컨테이너 포트 매핑, 볼륨 같은 간단한 필드로 서비스를 정의하게 해 줍니다. 최신 Compose 스펙(버전 키 없음)에 맞는 유효한 YAML 파일을 합리적인 기본값과 함께 출력합니다.
Compose 파일 만드는 방법
-
1
서비스 추가
각 서비스에 이름과 이미지를 지정한 다음 포트 매핑, 볼륨, 환경 변수, 재시작 정책을 설정합니다. 시작용 서비스 두 개가 이미 채워져 있고, 그대로도 실행됩니다.
-
2
행 수정 또는 삭제
아무 필드나 직접 수정하고, + Service 버튼으로 서비스를 추가하거나 필요 없는 행을 삭제합니다.
-
3
생성된 YAML 확인
생성된 YAML을 확인하세요. 포트 매핑은 따옴표로 감싸고, 명명된 볼륨은 모두 파일 끝에 선언되며, version 키는 생략됩니다. 최신 Compose 사양이 요구하는 방식입니다.
-
4
파일 복사
생성된 docker-compose.yml을 복사해 프로젝트 루트에 붙여넣습니다.
최신 Compose 스펙
Compose V2(Docker Desktop과 최신 Docker Engine에 포함된 플러그인)는 Compose Specification을 따릅니다. version: 키는 더 이상 쓰지 않으며 생성기는 이를 생략합니다. 최상위 키는 services, networks, volumes, configs, secrets입니다.
서비스 구조
운영에 가까운 서비스는 이렇게 생겼습니다:
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
볼륨: 바인드 마운트와 명명된 볼륨
- 바인드 마운트(
./app:/var/www)는 컨테이너를 호스트의 경로에 연결합니다. 변경 사항이 즉시 반영되어 로컬 개발에 좋습니다. - 명명된 볼륨(
pgdata:/var/lib/postgresql/data)은 Docker가 관리하며 호스트 경로와 무관하게 유지됩니다. 데이터베이스처럼rm -rf로 실수로 지우면 안 되는 것에 적합합니다. - 익명 볼륨 - 피하세요. 재시작 후에도 남지만
docker compose down -v를 실행하면 경고 없이 사라집니다.
네트워크
기본적으로 Compose는 프로젝트 이름의 네트워크를 만들고 모든 서비스를 여기에 연결합니다. 명시적 네트워크를 선언하는 것이 유용한 경우는 다음과 같습니다:
- 공개 서비스에서 데이터베이스를 격리하려는 경우.
- 기존 인프라에 맞추기 위해 사용자 지정 서브넷의 브리지가 필요한 경우.
- 이미 존재하는 외부 네트워크에 컨테이너를 연결하려는 경우(
external: true).
피해야 할 흔한 실수
- 버전 키 충돌. 맨 위의
version: "3.8"은 healthcheck의start_interval같은 최신 기능이 이전 Compose에서 동작하지 못하게 합니다. 생성기는 버전 키를 생략합니다. - 포트 따옴표.
8080:80은 일부 경계 상황에서 YAML 60진수로 해석됩니다. 생성기는 포트 매핑을 항상 따옴표로 감쌉니다. - 하드코딩된 비밀. compose.yml에 직접 쓴 비밀은 git에 커밋됩니다.
env_file이나 플랫폼의 비밀 저장소에 보관하세요. - 조건 없는 depends_on. 단순한
depends_on: [db]는 컨테이너 시작만 기다리며 서비스 준비 상태를 기다리지 않습니다.condition: service_healthy를 쓰고 종속 서비스에 healthcheck를 추가하세요.
자주 묻는 질문
현재 Compose Specification(Docker Compose V2에 맞춘 규격)입니다. 파일은 version: 키를 생략하며, 이것이 최신 Compose 파일 작성 방식입니다. Docker Compose V2.22 이상에서 동작합니다.
폼에서는 안 됩니다. 폼은 이미지, 포트, 볼륨, 환경 변수, 재시작 정책을 다루고, 서비스가 마운트하는 명명된 볼륨을 Compose가 요구하는 대로 모두 선언합니다. 네트워크와 헬스 체크는 생성된 YAML에 직접 적어 넣으세요.
아니요. 이 도구는 compose.yml에 집중합니다. Dockerfile은 기본 이미지 선택과 다섯 가지 스택의 COPY/RUN 순서를 다루는 Dockerfile 생성기를 사용하세요.
아니요. 서비스 정의는 이 페이지에서 YAML을 만들 때만 사용됩니다. 저장되거나 업로드되거나 공유되지 않습니다.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
HEX → ASCII 변환기
16진 바이트 시퀀스를 ASCII 텍스트로 변환합니다. 프로토콜 디버깅, 리버스 엔지니어링, CTF 챌린지에 좋습니다.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
이 도구는 다른 언어로도 제공됩니다
- Generator Docker Compose [ID]
- مولّد Docker Compose [AR]
- Generador de Docker Compose [ES]
- Docker-Compose-Generator [DE]
- Trình tạo Docker Compose [VI]
- Docker Composeジェネレーター [JA]
- Docker Compose-generator [SV]
- Docker Compose-generator [NL]
- Gerador de Docker Compose [PT]
- Générateur Docker Compose [FR]
- Generator Docker Compose [PL]
- ตัวสร้าง Docker Compose [TH]
- Docker Compose Oluşturucu [TR]
- Docker Compose 生成器 [ZH]
- Docker Compose Generator [EN]
- Generatore di Docker Compose [IT]
- Генератор Docker Compose [RU]