카테고리 없음
도커 컴포즈로 서버가 부팅할때마다 자동으로 실행하기
YoshiaLee
2024. 8. 16. 10:07
회사 서버가 비용때문인지 밤에는 자동으로 꺼지는데 그때마다 수동으로 도커를 다시 키는게 너무 귀찮아서 서버가 재부팅 될때마
다 도커 컴포즈 설정을 활용해서 같이 시작되도록 한다.
이 설정파일을 만든다.
sudo nano /etc/systemd/system/docker-compose-app.service
[Unit]
Description=Docker Compose Application Service
Requires=docker.service
After=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
WorkingDirectory=/<your_docker-compose.yml_directory>/
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 # reload
sudo systemctl enable docker-compose-app # enable
참고로 컨테이너 끼리의 의존성이 없는 mysql 이나 redis 컨테이너를 서버의 재부팅과 같이 실행시키고 싶다면 간단히
--restart unless-stopped 옵션만 추가하면 된다.
docker run -d --name mysql \
--restart unless-stopped \
-e MYSQL_ROOT_PASSWORD=<your_password> \
-e MYSQL_USER=<your_name> \
-e MYSQL_PASSWORD=<your_password> \
-e MYSQL_DATABASE=<your_db> \
-p 3306:3306 \
mysql
docker run -d --name redis-container --restart unless-stopped -p 6379:6379 redis redis-server --requirepass <your_password>
이렇게 설정해주고 인스턴스를 재부팅 시키면 알아서 도커 컴포즈가 실행되는것을 확인할수있다.
도커는 다루면 다룰수록 편의성이 어마무시한것 같다.
지후선배의 말처럼
도커와 도커 컴포즈만 있으면 어디든 갈수 있다는 생각이 든다.