본문 바로가기

쉘스크립트/💻 간단한 프로그래밍

Docker Container를 자동으로 종료 및 삭제 후 재 시작하는 스크립트

# Cloud9을 개발환경으로 구성하게 되면 생기는 문제점

- Spot 인스턴스의 한계

Spot 인스턴스는 말 그대로 사용시 에만 동작을 하는 구조이다. 그래서 디폴트 30분이 지나면 자동으로 "중지" 상태로 돌아간다.

문제는 중지가 되었을때, 기존에 실행중이던 애플리케이션은 종료가 되거나, 없어진다는 점이다.

# 해결방법

1. 아래와 같이 간단하게 스크립트를 작성 후 Cloud9이 꺼지거나 실행할때마다 스크립트 파일을 실행해주는 방법이 있다.

- 파일 생성 : vim auto_start.sh

- 파일 실행 : sh auto_start.sh

### Dpcker 전체 컨테이너 삭제 ###
#-- 현재 실행중인 docker 컨테이너 조회
docker ps -a
#-- 현재 실행중인 docker 컨테이너 전체 STOP
docker stop `docker ps -a`
#-- 현재 실행중인 docker 컨테이너 전체 삭제 DELETE
docker rm `docker ps -a`
#-- 3초간 sleep 상태 유자
sleep 1
echo docker container deleting...
sleep 1
echo docker container deleting...
seelp 1
echo docker container deleting...
#-- minikube를 재 시작한다.
minikube start --driver=docker
echo minikube started...

2. 리눅스 실행 시 자동으로 실행되도록 설정

2022.10.21 - [🌅 리눅스/리눅스 관리 기법] - 리눅스 실행시 자동실행 되도록 설정하기

 

리눅스 실행시 자동실행 되도록 설정하기

# 문제점 : Cloud9은 Spot인스턴스 이므로 30분간 사용을 하지 않으면 자동으로 종료된다. 그래서 실행중인 프로그램들이 죵료되어 일일히 재 시작 해줘야 하는 부분이 존재한다. 그런 문제들을 사

may9noy.tistory.com

개인적으로 1번을 추천한다...

3. 백그라운드에서 실행 되도록 expose 설정

2022.08.10 - [🌅 리눅스/명령어 모음] - 리눅스 프로세스 백그라운드 실행하기

 

리눅스 프로세스 백그라운드 실행하기

# 리눅스에서 터미널이 종료되도 계속 실행하도록 하기위한 명령어는 아래와 같다. nohup [실행 명령어] & 예시는 아래와 같다. nohup kubectl port-forward --address=0.0.0.0 -n istio-system svc/apigateway 99..

may9noy.tistory.com

- 끝 -