WSL에서 docker-compose 사용하기

WSL에서 docker-compose 사용하기

Database
WSL에서 docker-compose 사용하기
Author

gabriel yang

Published

September 21, 2024


WSL(Windows Subsystem for Linux)에서 Docker Compose를 사용하는 방법은 Windows에서 Docker Desktop과 WSL 2를 활용해 WSL 내부에서 Docker Compose를 실행하는 방식입니다. 이 과정에서 Docker Desktop의 Docker 데몬을 이용하여 WSL 내에서 docker-compose 명령어를 사용할 수 있습니다.

1. Docker Desktop 설치 및 설정

먼저 Windows에서 Docker Desktop을 설치하고 WSL 2 통합을 활성화해야 합니다.

  1. Docker Desktop 설치
  2. WSL 2 설치 및 활성화
    • WSL 2가 기본으로 설치되어 있어야 하며, Windows 버전에 따라 wsl --install 명령으로 설치할 수 있습니다.

      wsl --install
    • 기본 WSL 버전을 WSL 2로 설정합니다:

      wsl --set-default-version 2
  3. Docker Desktop에서 WSL 2 통합 활성화
    • Docker Desktop을 실행하고 Settings > Resources > WSL Integration으로 이동합니다.
    • “Enable integration with my default WSL distro” 옵션을 활성화하고 사용하려는 WSL 배포판(예: Ubuntu)을 선택합니다.

2. WSL에 Docker 및 Docker Compose 설치

WSL 배포판에 dockerdocker-compose를 설치할 필요는 없습니다. Docker Desktop이 설치되어 있으면 WSL에서 Docker를 바로 사용할 수 있으며, Docker Compose도 동일하게 설치됩니다.

다만, 아래 명령으로 버전 확인이 가능합니다:

docker --version
docker-compose --version

정상적으로 버전 정보가 출력되면 Docker와 Docker Compose가 잘 연결되어 있다는 뜻입니다.

3. Docker Compose 파일 작성

WSL에서 docker-compose.yml 파일을 작성하여 여러 컨테이너를 구성할 수 있습니다. 예시로 간단한 docker-compose.yml 파일을 작성해보겠습니다.

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
  db:
    image: postgres:latest
    environment:
      POSTGRES_USER: example
      POSTGRES_PASSWORD: example

위의 파일은 nginxpostgres 컨테이너를 설정하고, nginx는 호스트의 8080 포트를 통해 접근할 수 있게 설정한 예시입니다.

4. Docker Compose 명령어 실행

docker-compose.yml 파일이 있는 디렉터리에서 WSL 터미널을 열고 다음 명령을 실행하여 Docker Compose로 컨테이너를 실행할 수 있습니다.

docker-compose up

docker-compose up 명령은 docker-compose.yml에 정의된 모든 서비스를 실행합니다. 이 명령어는 배포판이 아닌 Windows의 Docker Desktop에서 실제로 Docker 데몬이 처리하는 방식으로 동작합니다.

5. 백그라운드 실행

-d 옵션을 사용하여 컨테이너를 백그라운드에서 실행할 수도 있습니다.

docker-compose up -d

이렇게 하면 Docker Compose가 백그라운드에서 컨테이너를 실행하고 터미널을 계속 사용할 수 있습니다.

6. Docker Compose 컨테이너 중지

컨테이너를 중지하려면 다음 명령을 실행합니다.

docker-compose down

이 명령은 실행 중인 모든 컨테이너를 중지하고, 연결된 네트워크도 제거합니다.

7. 연결 및 확인

브라우저에서 http://localhost:8080으로 접속하여 nginx 서비스가 정상적으로 실행 중인지 확인할 수 있습니다.


요약

  • Docker DesktopWSL 2 통합을 통해, Windows에서 실행 중인 Docker 데몬을 사용해 WSL 환경에서 Docker Compose를 실행할 수 있습니다.
  • Docker Desktop을 설치하고 WSL과의 통합을 활성화하면, WSL에서 별도의 Docker 설치 없이 Docker Compose를 사용할 수 있습니다.
  • WSL 환경에서 docker-compose.yml 파일을 작성하고, docker-compose up 명령어를 통해 여러 컨테이너를 손쉽게 관리할 수 있습니다.

이 방식은 WSL 환경에서 네이티브로 Docker Compose를 실행할 수 있도록 하여 Windows와 Linux 환경의 통합된 개발 워크플로우를 지원합니다.