docker-compose에서 컨테이너를 시스템 시작 시 자동으로 시작하게 하려면, restart 정책을 docker-compose.yml에 명시하면 됩니다. 또한 서버 수준에서 완전한 부팅 자동화를 원할 경우, systemd 서비스로 등록할 수도 있습니다.
1. docker-compose.yml에서 자동 재시작 설정
Compose 파일의 각 서비스에 restart 속성을 추가합니다.
version: '3.8'
services:
db:
image: mysql:8
environment:
MYSQL_ROOT_PASSWORD: root
restart: unless-stopped
web:
image: nginx:latest
ports:
- "8080:80"
depends_on:
- db
restart: always
선택 가능한 restart 옵션
| 정책 | 설명 |
|---|---|
no |
자동 재시작 안 함 (기본값) |
always |
언제나 자동 시작. Docker Desktop 또는 데몬 재시작 시에도 |
on-failure |
에러로 종료될 때만 재시작 |
unless-stopped |
수동으로 stop하지 않는 한 계속 유지. 가장 실용적인 설정 |
이 설정으로 Docker가 부팅될 때 컨테이너를 자동으로 재기동합니다.
2. systemd 서비스로 docker-compose 전체 자동 실행
Docker Desktop이 아닌 리눅스 서버 환경에서는 systemd 유닛 파일을 만들어 docker-compose를 부팅 시 실행할 수 있습니다.
예시 (/etc/systemd/system/my-compose.service):
[Unit]
Description=Docker Compose Application
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/path/to/project
ExecStart=/usr/local/bin/docker-compose up -d
ExecStop=/usr/local/bin/docker-compose down
TimeoutStartSec=0
[Install]
WantedBy=multi-user.target
활성화 명령:
sudo systemctl daemon-reload
sudo systemctl enable my-compose
sudo systemctl start my-compose
이렇게 하면 부팅 시 자동으로 docker-compose up -d가 실행됩니다.
3. Docker Desktop 환경 참고
Windows나 macOS의 Docker Desktop에서는 compose 서비스가 Docker Desktop 실행 후 자동으로 컨테이너를 재시작하게 됩니다.
이 경우 Docker Desktop 설정 메뉴에서 “Start Docker Desktop when you log in” 옵션이 켜져 있어야 합니다.
Compose 파일에 restart: unless-stopped 또는 restart: always 속성만 있으면 자동으로 컨테이너가 재기동됩니다.

Docker Desktop에서 컨테이너를 시작 시 자동으로 시작하게 하려면 컨테이너에 재시작 정책(restart policy)을 설정해야 합니다.
가장 흔한 방법은 컨테이너 생성 시 또는 이미 생성된 컨테이너에 다음 옵션을 사용해 설정하는 것입니다.
-
컨테이너 생성 시:
bashdocker run -d --restart=always --name <컨테이너명> <이미지명>
-
이미 생성된 컨테이너에 적용 시:
bashdocker update --restart=always <컨테이너명 또는 아이디>
–restart 옵션에 설정할 수 있는 값은 다음과 같습니다:
-
no (기본값): 자동재시작 없음
-
on-failure: 오류 발생 시 재시작
-
always: 컨테이너가 중지되면 항상 재시작, Docker 재시작 시도 포함
-
unless-stopped: 수동으로 중지하지 않는 한 항상 재시작
Windows에서 Docker Desktop 사용 시, Docker 엔진 자체가 윈도우 시작 시 자동 실행되어야 하며, Docker Desktop 설정에서도 “시작 시 자동 실행(Start Docker Desktop when you log in)” 옵션이 켜져 있어야 합니다. 이 외에도 Windows 작업 스케줄러에 docker start 명령을 등록하는 방법도 있습니다.
요약하면, Docker Desktop에서 컨테이너 자동 시작하려면 컨테이너에 --restart=always 옵션을 주거나 docker update로 설정한 후, Docker Desktop이 윈도우 시작 시 자동 실행되도록 설정하면 됩니다.