우당탕탕
Docker Compose로 개발 환경 통합하며 겪은 2026년 변화와 해결법 본문
제가 이번에 Docker Compose로 개발 환경을 통합하면서 생각보다 많은 삽질을 했어요. 특히 2026년에 들어서면서 Compose 명령어 구조가 바뀌고, 일부 설정 옵션이 deprecated 되면서 헷갈리는 부분이 많더라고요.
이 글에서는 2026년 기준 Docker Compose 최신 변화를 반영해서, 제가 실제로 겪은 문제와 해결 과정을 구체적인 명령어와 설정값 위주로 자세히 공유할게요. Docker Compose로 개발 환경을 처음 세팅하거나, 기존 환경을 올해 맞춰 업데이트하려는 분들께 딱 도움이 될 내용입니다.
개발 환경 및 버전 정보
제가 사용한 주요 환경은 다음과 같아요. Docker 24.0.2 버전으로, Docker Compose는 내장형인 v2.18.1 버전을 사용했습니다. 또 Ubuntu 22.04 LTS 서버에서 작업했어요.
Docker Compose 최신 변경점부터 확인하세요
사실 2026년부터 Docker Compose CLI가 완전히 docker compose로 통합되면서, 예전처럼 docker-compose 커맨드를 직접 사용하는 게 권장되지 않아요. 대부분 문서도 이제 이걸 기준으로 작성됩니다.
또한, 2026년부터 몇 가지 주요 설정 키 이름이 변경</strong되어 기존 docker-compose.yml 파일을 조금 수정해야 할 필요가 생겼거든요. 예를 들어 container_name 대신에 name으로 지정하는 게 점차 표준화되고 있다는 점 참고하세요.
새 버전 Docker Compose로 개발 환경 통합하는 방법
사실 이 부분이 가장 궁금해하는 분들이 많을 텐데요, 저는 아래와 같이 진행했어요.
# 1. docker-compose.yml 파일 예시 (2026년식 업데이트 반영)
version: '3.9'
services:
web:
image: node:18-alpine
container_name: myapp_web_2026 # deprecated: 2026년 이후 name 사용 권장
command: sh -c "npm install && npm run dev"
ports:
- "3000:3000"
volumes:
- ./:/app
working_dir: /app
environment:
- NODE_ENV=development
db:
image: postgres:15
name: myapp_db # 2026년부터 container_name 대신 이걸 추천
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: myappdb
volumes:
- pgdata:/var/lib/postgresql/data
ports:
- "5432:5432"
volumes:
pgdata:
name: myapp_pgdata
여기서 중요한 점은 container_name과 name 옵션인데요, Docker 자체가 내부 네트워크 이름 충돌을 막기 위해 예전과 다르게 이름 관리 정책을 조금 엄격하게 바꿨더라고요. 그래서 저는 보통 name을 명확히 지정해서 충돌 위험을 줄이고 있어요.
다음은 Compose 명령어도 최신 스타일이에요.
# 프로젝트 디렉터리에서 실행
docker compose up -d # 예전 docker-compose up -d 대신
docker compose logs -f
docker compose down
이렇게 하니까 예전 명령어와 헷갈리지 않게 되더라고요.
제가 겪었던 삽질과 해결법
저도 처음엔 docker compose 명령어가 왜 안 먹히는지 한참 헤맸거든요. 실제 오류 메시지는 이렇게 나왔어요.
Error: unknown command "compose" for "docker"
Run 'docker --help' for usage.
Did you mean this?
compute
이게 왜 그랬냐면 제가 Docker CLI 버전은 올렸는데 Docker Compose 플러그인이 들어있지 않아서였어요. 그래서 아래처럼 직접 Docker Compose 플러그인을 설치했더니 문제가 해결됐습니다.
# Ubuntu 기준 설치 명령어 예시
sudo apt-get update
sudo apt-get install docker-compose-plugin
docker compose version
그 이후에는 명령어가 정상 작동했고, Compose 파일도 3.9 버전 문법을 따라 수정하니까 훨씬 안정적으로 실행되더라고요.
또 하나 헷갈린 건 볼륨 마운트 시 권한 문제였는데요, Docker가 2026년에는 기본 보안 정책이 강화되어서 파일 권한 처리 방식이 바뀌었더라고요. 그래서 이렇게 :delegated 옵션을 붙여주니까 권한 문제도 자연스럽게 해결됐어요.
volumes:
- ./:/app:delegated
이렇게 하면 Docker Compose 환경이 한결 좋아져요
사실 이렇게 최신 Compose 구조에 맞게 설정하고 나니까, 개발하는 동안 컨테이너 재시작이나 로그 확인도 훨씬 수월해졌어요. 특히 Compose CLI 내장화 덕분에 도커 명령어 하나로 거의 모든 작업이 가능해서 터미널 명령어 복잡함도 크게 줄었고요.
만약 기존에 docker-compose 명령어를 쓰던 분들은 꼭 이번에 Compose 플러그인 설치하고 docker compose 방식으로 전환해보세요. 그리고 YAML 파일도 3.9 문법에 맞게 업데이트해야 오류도 줄고 최신 정책에 잘 맞는 환경이 됩니다.
자주 물어보시는 것들
Q. 기존 docker-compose.yml 파일을 2026년 버전에 맞춰서 어떻게 바꾸나요?
A. version: '3' 이나 '3.7' 같은 구버전을 '3.9'로 올리고, container_name은 가급적 name으로 대체하는 게 좋아요. 또 권한 문제 방지를 위해 볼륨 마운트에 :delegated 옵션을 추가하는 것도 권장됩니다.
Q. Compose 플러그인이 왜 꼭 필요한가요?
A. 2026년 이후 Docker CLI에 Compose 기능이 내장되면서 단독 docker-compose 바이너리는 deprecated 됐어요. 그래서 새 CLI에서 오류 없이 쓰려면 Compose 플러그인을 설치해야 하고, 이걸로 관리하는 게 공식 권장입니다.
Q. Mac이나 Windows에서도 같은 방법이 적용되나요?
A. 네, 기본적으로 Docker Desktop을 쓰는 환경에서는 자동으로 Compose 플러그인이 포함되어 있지만, 때때로 버전 호환성 문제로 명령어가 달라질 수 있어요. 항상 docker compose version으로 확인해보시는 게 좋아요.
이렇게 2026년에 맞춰 Docker Compose 환경을 정비하니까, 앞으로 개발환경 세팅과 유지 관리가 한결 편해졌어요. 특히 변경된 Compose CLI 명령어와 YAML 파일 규칙만 잘 숙지하면 오래 쓸 수 있는 안정적인 개발 인프라가 완성됩니다.
'Linux' 카테고리의 다른 글
| Linux 명령어 실무에서 매일 쓰는 것들, 저도 이걸 몰라서 고생했어요 (0) | 2026.06.20 |
|---|---|
| Nginx 리버스 프록시에 SSL 직접 적용해보면서 겪은 이야기 (1) | 2026.06.19 |
| SSH 키 관리 실수로 서버 잠겼을 때 비용 차이와 해결법 직접 경험담 (1) | 2026.06.09 |
| Linux 메모리 부족 원인 추적해본 후기와 꼭 확인할 체크리스트 (0) | 2026.06.04 |
| 2026년 기준 Ubuntu 서버 초기 설정 보안 강화하는 방법 실제로 해봤어요 (0) | 2026.06.02 |
