티스토리 뷰

최근 MSA기반으로 진행 중인 개인 프로젝트를 작업하다 보니
서비스별로 프로젝트를 분리하고 연관된 데몬을 Docker 컨테이너로 관리하는데
시작이 반이라고 작업전 컨테이너를 실행 전 개발 작업을 시작하기까지
시간이 다소 소요되니 작업을 하고자 행동에 옮기는 횟수가 줄어들어 버렸다.

현재 보유하고 있는 docker image와 container는 아래와 같다.
개인프로젝트로 테스트용도로 생성된 이미지도 많지만 현재 하나의 프로젝트를
개발 및 테스트하기 위해서는 최소 3개 이상의 컨테이너를 실행해야한다.



컨테이너를 실행하기 위해서는 아래와 같은 명령어를 입력한다.

docker start redis
docker start mongodb-container
docker start mysql-container
docker start mbtidiscovery


docker가 실행되고 있는 환경이 리눅스 환경이기 때문에 알고있는 지식과 빠르게 적용이 가능한

리눅스 쉘을 활용하여 동일하게 반복되는 명령어를 최소의 동작으로 대체할 수 있도록 하였다.

vi docker_container_start.sh

#!/bin/sh

echo "docker container auto start"

echo "docker start mongodb-container"
docker start mongodb-container

echo "docker start redis"
docker start redis

echo "docker start mysql-container"
docker start mysql-container

echo "docker start mbtidiscovery"
docker start mbtidiscovery

docker ps



해당 쉘을 실행 후 모든 컨테이너가 정상적으로 실행된 것을 확인할 수 있다.



컨테이너 종료도 마찬가지다 start  명령어를 stop으로 변경해 주었다.

vi docker_container_stop.sh

#!/bin/sh

echo "docker container auto stop"

echo "docker stop mongodb-container"
docker stop mongodb-container

echo "docker stop redis"
docker stop redis

echo "docker stop mysql-container"
docker stop mysql-container

echo "docker stop mbtidiscovery"
docker stop mbtidiscovery

docker ps

해당 쉘을 실행 후 모든 컨테이너가 정상적으로 종료된 것을 확인할 수 있다.



현재는 개인 프로젝트로 실행해야하는 컨테이너의 수가 적지만
보다 프로젝트 규모가 커지는 경우와 제어를하는 사용자가 여러명인 경우
하나의 쉘파일을 계속하여 수정하기에는 관리하기 힘들어질 수 있다.

지금 당장은 쉘파일을 작성하여 반복되는 작업을 대처하였지만
규모와 협업을 위해서라도 docker compose, 쿠버네티스 등의 컨테이너 관리 도구의 기능을 활용해야 할 것으로 보인다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함