#docker #kubernetes #container #orchestrator #microservice #infrastructure-as-code #devops #ci #cd

제목[QnA] AWS ec2 안에서 docker swarm init 할 때 에러 해결하기 (Error response from daemon: Timeout ...)2019-12-11 20:29
작성자

도커 스웜을 사용하기 위해서는 다음 포트를 열어야 합니다.


TCP : 2377, 2376, 7946

UDP : 7946, 4789


고맙게도 몇몇 포트는 ec2 도커 머신을 생성할때 열어주기도 하지만 아닌 포트들도 있습니다. 이는 다음과 같은 에러를 유발합니다.


Error response from daemon: Timeout was reached before node joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.


이를 해결하기 위해서는 포트를 직접 열어줘야 하는 데 AWS ec2 같은 경우 보안 그룹을 통해 쉽게 해결할 수 있습니다.


mb-file.php?path=2019%2F12%2F11%2FF530_%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202019-12-11%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.24.40.png
 

ec2 콘솔에서 보안 그룹을 들어갑니다. 그러면 하단에 인바운드가 있는데 편집을 눌러줍니다. 그러면 이렇게


mb-file.php?path=2019%2F12%2F11%2FF531_%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202019-12-11%20%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE%208.24.51.png
 

직접 편집을 할 수가 있습니다. 아까 말한 TCP UDP 포트들을 여기에 추가한 다음 저장을 누르고 잠시 기다리면 docker swarm init 이 문제없이 정상적으로 동작합니다.


일반적으로 docker-machine 보안 그룹은 docker-machine create 를 통해 아마존 ec2 를 생성하면 자동으로 만들어지지만 없을 경우 직접 추가하시면 됩니다.

댓글