우분투 20.04에서 Docker Compose를 시스템 재시작 시 자동으로 실행하려면
systemd 서비스를 설정하는 방법을 사용할 수 있습니다. 아래는 이를 구현하기 위한 단계입니다.1. Compose 파일 위치 확인
/root/compose.yaml 파일이 올바른지 확인하세요. Docker Compose는 기본적으로 docker-compose.yaml을 예상합니다. 하지만 compose.yaml도 동작합니다.2. Docker Compose 실행 스크립트 작성
서비스가 실행할 스크립트를 준비합니다. 예를 들어
/usr/local/bin/docker-compose-restart.sh를 생성하고 다음 내용을 추가합니다:#!/bin/bash docker compose -f /root/compose.yaml up -d
파일을 저장한 후 실행 권한을 부여합니다:
chmod +x /usr/local/bin/docker-compose-restart.sh
3. systemd 서비스 파일 생성
/etc/systemd/system/docker-compose-app.service 파일을 생성하고 아래 내용을 작성합니다:[Unit] Description=Docker Compose Application Service Requires=docker.service After=docker.service [Service] Type=oneshot ExecStart=/usr/local/bin/docker-compose-restart.sh RemainAfterExit=yes WorkingDirectory=/root User=root [Install] WantedBy=multi-user.target
4. systemd 서비스 활성화
서비스를 등록하고 시스템 재부팅 시 자동 실행되도록 설정합니다:
sudo systemctl daemon-reload sudo systemctl enable docker-compose-app.service
5. 테스트
서비스를 테스트하려면 다음 명령어를 사용해 봅니다:
sudo systemctl start docker-compose-app.service
실행 후
docker ps를 확인하여 컨테이너가 실행 중인지 확인합니다.6. 재부팅 후 확인
시스템을 재부팅하고 컨테이너가 자동으로 시작했는지 확인합니다:
docker ps
이렇게 설정하면 시스템이 부팅될 때마다 Docker Compose를 통해 컨테이너가 자동으로 실행됩니다.
