I have two microservices made using Flask, running on localhost:3000 and localhost:5000, they work fine and communicate well on local machine but after containerizing them I'm getting below error.
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=3000): Max retries exceeded with url: /update (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2a08eaa850>: Failed to establish a new connection: [Errno 111] Connection refused'))
The steps I followed for containerization are as below.
$ sudo docker build -t history:0.1
$ sudo docker build -t calculation:0.1
$ sudo docker run -d -p 0.0.0.0:3000:3000 --name history history:0.1
$ sudo docker run -d -p 0.0.0.0:5000:5000 --name calculation calculation:0.1
$ curl -X GET 0.0.0.0:3000/hist
{
"hist": []
}
$ curl -X GET 0.0.0.0:5000/sum/5/6
Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2309, in __call__
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2295, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1741, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 2292, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1815, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1718, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python3.8/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1813, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/app/calculate.py", line 15, in add
update(a,b,ans,'+')
File "/app/calculate.py", line 10, in update
requests.get('http://localhost:3000/update',json={"a":a,"b":b,"ans":ans,"operator":operator})
File "/usr/local/lib/python3.8/site-packages/requests/api.py", line 75, in get
return request('get', url, params=params, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/api.py", line 60, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 524, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/sessions.py", line 637, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.8/site-packages/requests/adapters.py", line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPConnectionPool(host='localhost', port=3000): Max retries exceeded with url: /update (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f2a08904040>: Failed to establish a new connection: [Errno 111] Connection refused'))
-->
Here calculation service is calling the history service to update the data in history.
I am new to docker. How can I solve it?