사용할 예제 : voting application

https://github.com/dockersamples/example-voting-app

 

GitHub - dockersamples/example-voting-app: Example distributed app composed of multiple containers for Docker, Compose, Swarm, a

Example distributed app composed of multiple containers for Docker, Compose, Swarm, and Kubernetes - GitHub - dockersamples/example-voting-app: Example distributed app composed of multiple containe...

github.com

 

실습 예제 파일을 깃 클론으로 받아옴

 

빌드 후 실행(하나하나 실행)

 

-> vote 시 정상 동작을 못한다. 아래 순서도를 보면 vote와 redis의 연결 부분에 문제가 있는것으로 보인다.

 


디테일한 문제점 분석

  1. vote에 로그인해서 redis로 신호(핑)을 날려보고 정상적으로 가는지 확인하면 된다.
    $ ping redis
    ping :cannot resolve redis: unknown host
    핑이 제대로 날라가지 않는다. (실제 연결이 안됨을 확인)
  2. db도 정상적인 값을 못받는듯 하다.
  3. db와 redis 의 연결에도 문제가 있어 보인다.

결론 : 컨테이너간 변수들이 전부 연결성에 문제가 있음을 추론할수있음.

 

해결방법 : 모든 컨테이너들을 --network mynetwork 로 묶어 연결

● 컨테이너를 다시 올리기 위해 초기화
docker container rm -f $(docker container ls -aq) 
● 네트워크 mynetwork 생성(존재한다면 지우고 다시 설치할것)
docker network create mynetwork
● docker run -d --name=redis --network mynetwork redis
● docker run -d --name=db -e POSTGRES_PASSWORD=password --network mynetwork postgres
● docker run -d --name=vote -p 5001:80 --network mynetwork vote 
● docker run -d --name=result -p 5002:80 --network mynetwork result 
● docker run -d --name=worker --network mynetwork worker

 


vote에서 redis 연결이 문제였으니 테스트 위해 vote쉘  접속(ping 모듈 설치위해 root로 접속)
+위에 순서도 참조 vote 다음이 redis이니까. vote에 접속해서 redis로 신호를 날려보는거임

  • weare@DESKTOP-BE1I4GE:~/example-voting-app$ docker exec -it --user root vote sh
    # apt update
  • # apt install iputils-ping
  • # ping redis (redis로 핑 날려봄)

 

정상 연결된 모습이다. 

'docker(도커) 및 쿠버네티스' 카테고리의 다른 글

docker-compose(명령어, yaml파일구조)  (0) 2023.12.29
.dockerignore 파일은 뭘까?  (1) 2023.12.28
docker 초기화(클린업)  (0) 2023.12.27
docker volume  (1) 2023.12.27
docker 명령어 모음  (0) 2023.12.27

+ Recent posts