Development/Project

210912~15 모해묵지 개발일지

2mukee 2021. 10. 19. 20:14
320x100
320x100

※ 목표
1. 데이터베이스 서버 도커 파일 작성
2. 메인서버와의 연결
3. 메인서버를 통한 CRUD 테스트


1. mongod 이미지 OS 확인
: Ubuntu 20.04

2. 몽고DB dbpath 확인
: cat /etc/mongod.conf

3. 몽고DB dbpath 설정
: mongod --dbpath '/usr/mh-db'

4. 컨테이너 IP 확인
: docker network ls 
: docker network inspect bridge
: containers 부분 확인
=> 도커 네트워크를 통한 연결


5. 도커스웜 도입
ㆍ도커 스웜 통신 포트 허용
: firewall-cmd --permanent --zone=public --add-port=2377/tcp
: firewall-cmd --permanent --zone=public --add-port=4789/udp
: firewall-cmd --permanent --zone=public --add-port=7946/udp
: firewall-cmd --permanent --zone=public --add-port=7946/tcp
: firewall-cmd --reload
: firewall-cmd --list-all

※ 도커 스웜 통신 포트
: Swarm Manager default port = 2377/tcp
: node communication = 7946/tcp, 7946/udp
: overlay network = 4789/udp

ㆍ토큰키 생성
: docker swarm init --advertise-addr ~~~

ㆍ노드 상태 확인
: docker node ls

ㆍ매니저 노드에서 join용 토큰 발급
: docker swarm join-token manager

ㆍ클러스터 조인 (노드<컨테이너>에 접속하여 실행)
: docker swarm join --token ~~~

ㆍ클러스터에 서비스 등록
: docker service create --name mh_main_container -p 443:17260 2mukee/mh_main_image:1.2
: docker service create --name mh_db_container -p 27017:27017 2mukee/mh_db_image:1.0

ㆍ도커 서비스 확인
: docker service ls
: docker service ps <서비스명>

ㆍ서비스 확장 및 축소
: docker service scale 서비스명=태스크 갯수

ㆍ등록된 서비스 테스트
: curl ~~~:443

ㆍ서비스 삭제
: docker service rm <서비스명>

=> 재부팅 이후 자동 실행성공



6. 데이터베이스 서버 도커 파일 작성
FROM mongo
LABEL "database-server"="v1.0"
ADD mongodb-org.repo /etc/yum.repos.d/

RUN nohup apt -y update &
WORKDIR /usr
RUN mkdir mh-db
RUN nohup mongod --dbpath '/usr/mh-db' &

EXPOSE 27107

 


docker build --tag 2mukee/mh_db_image:1.0 ./ 

 

 

 

1. VideoList.html 수정
: DB CRUD 테스트를 위해 VideoList.html을 임시로 DB와 연동

2. main_server.js와 db_connection.js 통합
: 모듈 프로그래밍시 지속적인 스코프 문제로 인해 통합 및 코드 정리

3. 웹페이지와 서버 프로그램 연동되도록 코드 수정

4. docker swarm에 적용
ㆍ도커 서비스 확인
: docker service ls
: docker service ps <서비스명>

ㆍ서비스 삭제
: docker service rm <서비스명>

ㆍ컨테이너 빌드 & 런
: docker build --tag 2mukee/mh_main_image:1.36 ./ 
: docker build --tag 2mukee/mh_db_image:1.1 ./ 
: docker run --name mh_main_container -p 443:17260 --cap-add=NET_ADMIN --privileged -d 2mukee/mh_main_image:1.36

ㆍ클러스터에 서비스 등록
: docker service create --name mh_main_container -p 443:17260 2mukee/mh_main_image:1.336
: docker service create --name mh_db_container -p 24:27017 2mukee/mh_db_image:1.1

=> 서비스를 새로 등록할때마다 태그를 바꿔라

 

 

 

 

 

300x250
728x90