Cannot access Docker container from another

Viewed 31

Using this docker-compose file:

version: '3'

services:
  hello:
    image: nginxdemos/hello
    ports:
      - 7080:80
  tool:
    image: wbitt/network-multitool
    tty: true

networks:
  default:
    name: test-network

If I curl from the host, it works.

❯ curl -s -o /dev/null -v http://192.168.1.102:7080
* Expire in 0 ms for 6 (transfer 0x8088b0)
*   Trying 192.168.1.102...
* TCP_NODELAY set
* Expire in 200 ms for 4 (transfer 0x8088b0)
* Connected to 192.168.1.102 (192.168.1.102) port 7080 (#0)
> GET / HTTP/1.1
> Host: 192.168.1.102:7080
> User-Agent: curl/7.64.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: nginx/1.23.1
< Date: Sun, 10 May 2071 00:06:00 GMT
< Content-Type: text/html
< Transfer-Encoding: chunked
< Connection: keep-alive
< Expires: Sun, 10 May 2071 00:05:59 GMT
< Cache-Control: no-cache
<
{ [6 bytes data]
* Connection #0 to host 192.168.1.102 left intact

If I try to contact another container from within the network, it fails.

❯ docker exec -it $(gdid tool) curl -s -o /dev/null -v http://hello
* Could not resolve host: hello
* Closing connection 0

Is this intended behaviour? I thought networks within the same network (and using docker-compose) are meant to be able to talk by their service name?

I am bringing the containers up with docker-compose up -d

0 Answers
Related