Toon posts:

Kan geen verbinding maken met docker containers

Pagina: 1
Acties:

Vraag


  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
Ik heb zojuist docker opnieuw geïnstalleerd omdat ik problemen heb met het benaderen van containers. Het lijkt erop dat er een verbinding tot stand komt maar die timed-out na een tijdje. De herinstallatie heeft niet geholpen en ik vermoed dat het te maken heeft met firewall instellingen, maar ook als ik mijn firewall uitzet ondervind ik dezelfde problemen. Ik hoop dat iemand mij vooruit kan helpen.

Systeem:
  • Linux 10 (buster) 4.19.160-2
  • Docker version 20.10.2, build 2291f61
  • Firewall: csf: v14.08 (generic)
Installatie stappen:
  1. apt-get remove docker docker-engine docker.io containerd runc containerd.io
  2. apt-get purge docker docker-engine docker.io containerd runc containerd.io
  3. rm -rf /var/lib/docker
  4. apt-get install docker-ce docker-ce-cli containerd.io
Test:
docker run hello-world
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:31b9c7d48790f0d8c50ab433d9c3b7e17666d6993084c002c2ff1ca09b96391d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/


Installatie Portainer:
  • docker volume create portainer_data
  • docker run -d -p 8000:8000 -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
docker ps
code:
1
2
CONTAINER ID   IMAGE                    COMMAND        CREATED        STATUS              PORTS                                            NAMES
c38c51899132   portainer/portainer-ce   "/portainer"   22 hours ago   Up About a minute   0.0.0.0:8000->8000/tcp, 0.0.0.0:9000->9000/tcp   portainer


telnet localhost 8000
code:
1
2
3
4
5
6
7
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.


telnet localhost 9000
code:
1
2
3
4
5
6
7
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> quit
Connection closed.


De volgende calls timen outZodra ik de container stop krijg ik meteen een connection error.

ip a
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d0:50:99:09:98:ae brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.150/24 brd 192.168.0.255 scope global dynamic noprefixroute enp0s25
       valid_lft 75591sec preferred_lft 75591sec
    inet6 fe80::d250:99ff:fe09:98ae/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default
    link/ether 02:42:af:aa:c2:e6 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:afff:feaa:c2e6/64 scope link
       valid_lft forever preferred_lft forever
73: veth18ee93f@if72: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP group default
    link/ether 1a:40:32:43:68:9e brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet6 fe80::1840:32ff:fe43:689e/64 scope link
       valid_lft forever preferred_lft forever


Hopelijk is dit genoeg info voor iemand met meer meer verstand van zaken om mij op weg te helpen :)

Alle reacties


  • mithras
  • Registratie: Maart 2003
  • Niet online
Wat zegt
$ docker logs portainer

  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
docker logs portainer
code:
1
2
3
4
5
6
7
8
9
10
11
12
2021/01/28 07:16:42 server: Reverse tunnelling enabled
2021/01/28 07:16:42 server: Fingerprint 9a:2d:4c:7e:87:33:bb:28:ff:8e:7d:21:51:ce:68:c1
2021/01/28 07:16:42 server: Listening on 0.0.0.0:8000...
2021/01/28 07:16:42 Starting Portainer 2.0.1 on :9000
2021/01/28 07:16:42 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]
2021/01/28 07:21:42 No administrator account was created after 5 min. Shutting down the Portainer instance for security reasons.
2021/01/28 07:21:43 server: Reverse tunnelling enabled
2021/01/28 07:21:43 server: Fingerprint 9a:2d:4c:7e:87:33:bb:28:ff:8e:7d:21:51:ce:68:c1
2021/01/28 07:21:43 server: Listening on 0.0.0.0:8000...
2021/01/28 07:21:43 Starting Portainer 2.0.1 on :9000
2021/01/28 07:21:43 [DEBUG] [chisel, monitoring] [check_interval_seconds: 10.000000] [message: starting tunnel management process]
2021/01/28 07:26:43 No administrator account was created after 5 min. Shutting down the Portainer

  • BosGnoom
  • Registratie: Februari 2002
  • Laatst online: 16-03 13:17
Zonder enige vorm van kennis lijkt me het issue toch heel duidelijk:
code:
1
No administrator account was created after 5 min. Shutting down the Portainer


Je moet blijkbaar een administrator account aanmaken binnen 5 minuten...

  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
BosGnoom schreef op donderdag 28 januari 2021 @ 12:09:
Zonder enige vorm van kennis lijkt me het issue toch heel duidelijk:
code:
1
No administrator account was created after 5 min. Shutting down the Portainer


Je moet blijkbaar een administrator account aanmaken binnen 5 minuten...
Dat klopt, moet ik wel bij de admin pagina komen = het probleem

  • BosGnoom
  • Registratie: Februari 2002
  • Laatst online: 16-03 13:17
Op die fiets 8)7

Geen dingetje met root/user credentials die mis lopen?

  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
Volgens mij niet @BosGnoom :) Hopelijk checked een docker/iptables nerd dit topic later vandaag

  • mithras
  • Registratie: Maart 2003
  • Niet online
Ik zie ook niks wat aan je docker kant misgaat. De container logging en output van docker ps liggen wel in lijn met elkaar. Ik denk dus echt dat het met je firewall te maken heeft die mogelijk ook intern verkeer blokkeert. Je container stopt gewoon doordat je geen admin password maakt, je kan daar niet bij door je fw (denk ik). Door --restart=always slingert hij je container weer aan, en begint het van voor af aan.

Maar met csf heb ik dan eigenlijk geen ervaring :) Wel wat obvious zaken:
- docker luistert wel op de poorten van je host (check netstat -ltnup)?
- je firewall heb je wel open staan op 8000 en 9000?

  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
Volgens mij wel:
netstat -apn | grep 8000
code:
1
tcp        0      0 0.0.0.0:8000            0.0.0.0:*               LISTEN      24201/dockerd

netstat -apn | grep 9000
code:
1
tcp        0      0 0.0.0.0:9000            0.0.0.0:*               LISTEN      24201/dockerd


Wat ik niet snap is dat ik lokaal via curl ook een timeout krijg, daardoor twijfel ik of het firewall gerelateerd is. Tevens als ik csf uitschakel blijft de situatie hetzelfde. Verder test ik alles als root, dus permissie gerelateerd lijkt me ook niet het geval.

Sidenote. Ik kan zonder problemen wel alle websites/vhosts benaderen achter nginx, lokaal en remote.

[Voor 7% gewijzigd door Simkin op 28-01-2021 12:54]


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 19-03 22:01

Hero of Time

Moderator LNX

There is only one Legend

Je telnet werkt werk, die zegt 'connected'. Je sluit daarna de verbinding. Maar wat als je nou eens wat opdrachten geeft, zoals 'GET /' oid, wat krijg je dan? Is het wel zeker een webinterface dat je zou moeten krijgen en is het niet een of andere commandline die eerst draait? Wat zegt de documentatie hierover? Er moet toch wel iets zijn beschreven hoe je verder gaat?

Commandline FTW | Tweakt met mate


  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
Hero of Time schreef op donderdag 28 januari 2021 @ 17:27:
Je telnet werkt werk, die zegt 'connected'. Je sluit daarna de verbinding. Maar wat als je nou eens wat opdrachten geeft, zoals 'GET /' oid, wat krijg je dan? Is het wel zeker een webinterface dat je zou moeten krijgen en is het niet een of andere commandline die eerst draait? Wat zegt de documentatie hierover? Er moet toch wel iets zijn beschreven hoe je verder gaat?
het probleem is niet geïsoleerd tot Portainer (ook getest met een wilekeurig builetinboard container) en de telnet GET retourneert niets (timeout, zelfde als externe clients). Vind het een lastig probleem

telnet localhost 9000
code:
1
2
3
4
5
6
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /
Connection closed by foreign host.

Close na 1m

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 19-03 22:01

Hero of Time

Moderator LNX

There is only one Legend

Als ik verder Google, krijg ik alleen maar resultaten die aangeven dat je een browser moet openen en naar localhost:9000 moet gaan. Nu staat volgens netstat je container op alle adressen te luisteren, maar misschien doet het intern nog iets als het niet vanaf de host komt via het localhost adres.

Commandline FTW | Tweakt met mate


  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
Mijn server is headless is dat is geen probleem voor de Portainer admin setup (kan prima remote). Ik kan lokaal wel een socket openen maar daarna gebeurd niets, dat is wat ik niet kan verklaren en hoop op te lossen. Weet ook niet zeker of mijn probleem docker gerelateerd is maar mis de kennis voor de juiste diagnose :/

Snel een test met een hello-world-website

docker run -d --rm --name web-test -p 6543:8000 crccheck/hello-world
code:
1
2
3
4
5
6
7
Unable to find image 'crccheck/hello-world:latest' locally
latest: Pulling from crccheck/hello-world
fc1a6b909f82: Pull complete
6f02cce707b8: Pull complete
Digest: sha256:ccbb034afd96e4448b741e244e0b622940ebbd3f833544edde7c5fe78dab88c8
Status: Downloaded newer image for crccheck/hello-world:latest
6f6e2afb2cb0e94d04695c5674462ad3033c59b376232d365396a21018bfb6b5


curl -I localhost:6543

Verwacht = "HTTP/1.0 200 OK"
Actueel = Geen response, ook geen terminate connectie

  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 19-03 22:01

Hero of Time

Moderator LNX

There is only one Legend

Dan zou ik gaan denken richting apparmor die dit mogelijk in de war schopt. Stop de service en schakel 'm uit, reboot en probeer opnieuw. Worst case verwijderen en herstarten, mits er geen zaken afhankelijk van zijn die je dan gaat missen.

Commandline FTW | Tweakt met mate


  • Simkin
  • Registratie: Maart 2000
  • Laatst online: 10:40
Hero of Time schreef op donderdag 28 januari 2021 @ 18:53:
Dan zou ik gaan denken richting apparmor die dit mogelijk in de war schopt. Stop de service en schakel 'm uit, reboot en probeer opnieuw. Worst case verwijderen en herstarten, mits er geen zaken afhankelijk van zijn die je dan gaat missen.
Volgens mij heb je gelijk:

aa-status
code:
1
2
3
4
5
6
7
8
9
10
apparmor module is loaded.
1 profiles are loaded.
1 profiles are in enforce mode.
   docker-default
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
   /portainer (2080) docker-default
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.


Nu dan maar uitzoeken hoe ik een exception kan aanmaken? heb hier nog weinig ervaring mee, iig mooi leermoment. ga https://docs.docker.com/engine/security/apparmor/ maar eens goed lezen

docker run -d -p 8000:8000 -p 9000:9000 --security-opt apparmor=unconfined --privileged --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Laat /Portainer process niet meer in enforced mode maar nog steeds hetzelfde probleem

aa-status
code:
1
2
3
4
5
6
7
8
9
apparmor module is loaded.
1 profiles are loaded.
1 profiles are in enforce mode.
   docker-default
0 profiles are in complain mode.
0 processes have profiles defined.
0 processes are in enforce mode.
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

[Voor 29% gewijzigd door Simkin op 29-01-2021 08:57]


  • Hero of Time
  • Registratie: Oktober 2004
  • Laatst online: 19-03 22:01

Hero of Time

Moderator LNX

There is only one Legend

Daarom als test uitzetten of weggooien indien mogelijk. Waarom Canonical het SELinux wiel opnieuw moest uitvinden weet ik niet, maar het maakt de boel alleen maar ingewikkelder en vervelender als er iets onverwachts gebeurt. Want mijn (beperkte) ervaring met AA is dat als je de service stopt, het nog steeds de boel tegenhoud en in de weg zit. Ik heb 't toen moeten verwijderen om m'n gewenste resultaat te krijgen.

Commandline FTW | Tweakt met mate

Pagina: 1


Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee