리눅스 재부팅할 때 특정 서비스 자동실행되게 하기

리눅스 재부팅할 때 특정 서비스 자동실행되게 하기

생성일
Nov 28, 2024 06:47 AM
상위 항목
최종 편집 일시
Last updated November 28, 2024
태그
TroubleShooting
하위 항목
우분투 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를 통해 컨테이너가 자동으로 실행됩니다.