Docker Run을 Compose로: 완전 가이드
일반적인 docker run 명령을 Compose 서비스 조각으로 변환해 포트, 환경 변수, 볼륨, 작업 디렉터리와 실행 명령을 검토하기 쉽게 만듭니다.
이 도구로 할 수 있는 일
--name, --restart, -p, --env, --volume, --network, -w 같은 주요 옵션을 읽습니다.
--rm, --init, --pull, --mount처럼 Compose와 완전히 같지 않은 옵션은 경고로 남깁니다.
이미지 이름과 이미지 뒤 command를 분리해 재사용 가능한 YAML 조각으로 만듭니다.
대표 사용 사례
- Redis나 PostgreSQL 로컬 실행 명령을 Compose로 정리합니다.
- 인프라 변경 전에 포트, 환경 변수, 볼륨을 검토합니다.
- 장애 재현용 docker run을 팀이 공유할 수 있는 형태로 바꿉니다.
- 수동 검토가 필요한 Docker 옵션을 확인합니다.
입력 예시
Redis
docker run -d --name redis -p 6379:6379 redis:7
Postgres
docker run --name pg -e POSTGRES_PASSWORD=secret -v pgdata:/var/lib/postgresql/data -p 5432:5432 postgres:16
Node
docker run --rm -it -v "$PWD:/app" -w /app node:22 npm test
출력 예시
Ports
ports:
- "6379:6379"
Environment
environment:
POSTGRES_PASSWORD: "secret"
Warning
--mount는 자동 변환하지 않고 원문을 경고에 남깁니다.
자주 발생하는 오류와 해결 방법
--rm을 Compose 기본 동작과 같다고 봄
컨테이너 보존과 삭제 시점을 별도로 확인합니다.
--mount를 검토하지 않음
type, source, target을 확인해 volumes로 바꿀지 판단합니다.
이미지 뒤 명령을 누락
npm test 같은 후속 인수가 command에 남았는지 확인합니다.
보안 및 개인정보 참고 사항
공통 개인정보 용어, 로컬 처리 모델, 외부 요청 라벨, DevTools 검증 흐름은 신뢰 센터에서 확인하세요.
- 변환은 브라우저에서만 수행되며 Docker나 외부 API를 호출하지 않습니다.
- 공유 전에 비밀번호, 토큰, 내부 레지스트리 이름을 제거하세요.
- 생성 YAML은 초안으로 보고 실행 전에 검토하세요.
단계별 진행 방식
- docker run 명령을 붙여 넣습니다.
- image, ports, environment, volumes, command를 확인합니다.
- 경고 항목을 처리한 뒤 Compose 파일에 반영합니다.
결과 공유 전 품질 체크리스트
- 이미지 이름과 태그가 정확합니다.
- 포트, 볼륨, 환경 변수를 검토했습니다.
- 경고 항목 처리 방식을 기록했습니다.
활용 팁
마이그레이션 출발점으로 사용하고 최종 Compose 파일은 대상 환경에서 검증하세요.
자주 묻는 질문
Docker를 실행하나요?
아니요. 문자열을 파싱해 Compose 조각만 생성합니다.
--mount는 변환되나요?
자동 변환하지 않고 원문을 경고로 남깁니다.
바로 배포해도 되나요?
네트워크, 볼륨, 환경 변수와 수명 주기를 검토한 뒤 사용하세요.