dockercon2022-talk icon indicating copy to clipboard operation
dockercon2022-talk copied to clipboard

couldn't access traefik gateway or svc behind it

Open RichardLee0211 opened this issue 2 years ago • 2 comments

First, great talk, Meysam. Highlight of the conference. New to Docker Compose, Followed alone, but not really understand network_mode: "host" option in traefic gateway.

from: https://docs.docker.com/compose/compose-file/#network_mode gives the container raw access to host’s network interface not sure what it means

and my setup failed to curl svc.dockercon2022.com and localhost:8080 feel like I missed some point

here's the situation:

vislab@vislab-MS-7845 [10:34:45 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/individual-services/traefik] [master]
-> % tail -n 3 /etc/hosts                                                                                                                                                                                                                                                                
# for dockercon2022 test
127.0.0.1    svc.dockercon2022.com
127.0.0.1    svc-crud.dockercon2022.com

vislab@vislab-MS-7845 [10:40:56 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/individual-services/traefik] [master]
-> % docker-compose version 
Docker Compose version v2.5.0

vislab@vislab-MS-7845 [10:41:31 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/individual-services/traefik] [master]
-> % docker-compose up -d 
[+] Running 1/1
 ⠿ Container traefik-gateway-1  Started                                                                                                0.2s

vislab@vislab-MS-7845 [10:41:37 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/individual-services/traefik] [master]
-> % curl localhost:8080
curl: (7) Failed to connect to localhost port 8080 after 0 ms: Connection refused

vislab@vislab-MS-7845 [10:42:38 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/individual-services/traefik] [master]
-> % docker-compose ls 
NAME                STATUS              CONFIG FILES
traefik             running(1)          /home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/individual-services/traefik/docker-compose.yml


or use entire-platform

vislab@vislab-MS-7845 [10:45:29 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform] [master]
-> % docker-compose up -d 
[+] Running 13/13
 ⠿ Network dockercon2022_redis             Created                                                                                                                                                                                                                                   0.0s
 ⠿ Network dockercon2022_svc1              Created                                                                                                                                                                                                                                   0.0s
 ⠿ Network dockercon2022_svc2              Created                                                                                                                                                                                                                                   0.0s
 ⠿ Network dockercon2022_svc3              Created                                                                                                                                                                                                                                   0.0s
 ⠿ Network dockercon2022_postgres          Created                                                                                                                                                                                                                                   0.0s
 ⠿ Container dockercon2022-svc2-copy-1     Started                                                                                                                                                                                                                                   1.6s
 ⠿ Container dockercon2022-gateway-1       Started                                                                                                                                                                                                                                   0.5s
 ⠿ Container dockercon2022-svc2-1          Started                                                                                                                                                                                                                                   1.5s
 ⠿ Container dockercon2022-redis-1         Started                                                                                                                                                                                                                                   1.3s
 ⠿ Container dockercon2022-postgres-1      Started                                                                                                                                                                                                                                   1.0s
 ⠿ Container dockercon2022-svc1-1          Started                                                                                                                                                                                                                                   1.2s
 ⠿ Container dockercon2022-svc3-migrate-1  Started                                                                                                                                                                                                                                   1.6s
 ⠿ Container dockercon2022-svc3-1          Started                                                                                                                                                                                                                                   2.0s

vislab@vislab-MS-7845 [10:45:45 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform] [master]
-> % docker-compose ls 
NAME                STATUS              CONFIG FILES
dockercon2022       running(7)          /home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-traefik.yml,/home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-svc1.yml,/home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-svc2.yml,/home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-svc2-copy.yml,/home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-svc3.yml,/home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-postgres.yml,/home/vislab/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform/compose-redis.yml

vislab@vislab-MS-7845 [10:45:50 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform] [master]
-> % curl http://svc.dockercon2022.com/v1/
curl: (7) Failed to connect to svc.dockercon2022.com port 80 after 0 ms: Connection refused

vislab@vislab-MS-7845 [10:47:03 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform] [master]
-> % nslookup svc.dockercon2022.com 
Server:         127.0.0.53
Address:        127.0.0.53#53

Name:   svc.dockercon2022.com
Address: 127.0.0.1

vislab@vislab-MS-7845 [10:47:36 PM] [~/Downloads/20220510_DockerConf/testDir/test002/dockercon2022-talk/entire-platform] [master]
-> % curl localhost:8080
curl: (7) Failed to connect to localhost port 8080 after 0 ms: Connection refused


RichardLee0211 avatar May 12 '22 02:05 RichardLee0211

Thanks, @RichardLee0211 for bringing this up and for the kind words. I have faced some issues with the macOS earlier, could you specify why OS you're using?

Also, to answer your question,network_mode: host is just as if you run the application in your host machine without any container because the application inside the container would attach to the network of your local machine; therefore naming "host". This means that if the application is opening ANY port, that port will be exposed on your local machine.

For example, if I run nginx with the network_mode: host mode, it would simply be as if I run the Nginx binary inside my machine, listening on port 80 and giving access to anyone inside my network to see the index page of the Nginx.

I hope this clears things up for you.

meysam81 avatar May 12 '22 19:05 meysam81

weird, It's ubuntu 22.04

-> % uname -a Linux vislab-MS-7845 5.15.0-27-generic #28-Ubuntu SMP Thu Apr 14 04:55:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

RichardLee0211 avatar May 13 '22 03:05 RichardLee0211