사용할 예제 : 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의 연결 부분에 문제가 있는것으로 보인다.
디테일한 문제점 분석
- vote에 로그인해서 redis로 신호(핑)을 날려보고 정상적으로 가는지 확인하면 된다.
$ ping redis
ping :cannot resolve redis: unknown host
핑이 제대로 날라가지 않는다. (실제 연결이 안됨을 확인) - db도 정상적인 값을 못받는듯 하다.
- 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 |