한대의 서버에 테슬라메이트 3개 가동하기(~n개까지 무한가능)

 결론은 서로 다른 디렉토리에서의 docker-compose.yml 파일을 쓰면 가능하다.



[1번]

/home/ID/models/docker-compose.yml 파일을 만든다.


[2번]

/home/ID/modelx/docker-compose.yml 파일을 만든다.


[3번]

/home/ID/model3/docker-compose.yml 파일을 만든다.


docker-compose.yml 파일은 아래 색칠 부분만 각자 다르게 설정해야한다. 어떤값이든 상관없지만. 겹치지 않도록 9개의 서로다른 포트번호를 쓴다.  4000 ~ 60000 번 사이는 아무거나 상관없다.(물론 방화벽에서 사용하는 포트는 열어줘야하겠다)

docker-compose.yml (예시) 분홍색숫자 3개가 서버포트이며, 각각의 설정파일마다 서로 다르게 해야한다.

version: "3"

services:
  teslamate:
    image: teslamate/teslamate:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=secret
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
      - MQTT_HOST=mosquitto
    ports:
      - 4000:4000
    volumes:
      - ./import:/opt/app/import
    cap_drop:
      - all

  database:
    image: postgres:13
    restart: always
    environment:
      - POSTGRES_USER=teslamate
      - POSTGRES_PASSWORD=secret
      - POSTGRES_DB=teslamate
    volumes:
      - teslamate-db:/var/lib/postgresql/data

  grafana:
    image: teslamate/grafana:latest
    restart: always
    environment:
      - DATABASE_USER=teslamate
      - DATABASE_PASS=secret
      - DATABASE_NAME=teslamate
      - DATABASE_HOST=database
    ports:
      - 3000:3000
    volumes:
      - teslamate-grafana-data:/var/lib/grafana

  mosquitto:
    image: eclipse-mosquitto:1.6
    restart: always
    ports:
      - 1883:1883
    volumes:
      - mosquitto-conf:/mosquitto/config
      - mosquitto-data:/mosquitto/data

volumes:
  teslamate-db:
  teslamate-grafana-data:
  mosquitto-conf:
  mosquitto-data:


예를들어  5000, 5001, 5002  로 했을 경우

http://내서버IP:5000   메인화면

http://내서버IP:5001   그라파나 데이터 표 분석화면

5002 는 데이터수집용이며 따로 사용되지는 않음.



이제 관리자 권한일 경우 아래와같이 바로실행 가능하겠다.

[models]

# cd /home/ID/models

$ docker-compose -f /home/ID/models/docker-compose.yml up -d


[modelx]

# cd /home/ID/modelx

$ docker-compose -f /home/ID/modelx/docker-compose.yml up -d


[model3]

# cd /home/ID/model3

$ docker-compose -f /home/ID/model3/docker-compose.yml up -d


백업이나 복원시에도 -f /설정파일경로  는 반드시 추가해주고 그 뒤로 나머지 명령어를 적어야하겠다.

댓글 2개:

  1. 안녕하세요 좋은정보 감사합니다.
    알려주신대로 따라해봤는데 마지막으로 up 한 포트로만 접속이 됩니다
    제가 사용한 서버는 시놀로지 입니다.
    놓친 부분이 있을까요?
    감사합니다.

    답글삭제
    답글
    1. 최초 실행시 컨테이너가 만들어 집니다. 만약 포트를 중간에 바꾸려면, DB백업하고, 시놀로지 도커관리자에서 만들어진 컨테이너를 삭제하시고, 다시 새로 설치해서 기존 DB복원하셔야 합니다.

      삭제