Docker Community Forums

Share and learn in the Docker community.

Installing DTR FATAL error

Hello,

i have DTR and UCP on 2 diffreant servers.
for some reson the DTR installtion always gets fatal error :

FATA[0033] Failure to confirm that required ports are not taken: Failed to start port test container: Polling failed with 10 attempts 1s apart: Error response from daemon: Error response from daemon: driver failed programming external connectivity on endpoint dtr-port-test (1198cd16dfd891c50a12f4e9e5881feb316b19a1226cf75aa6622601151e496b): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

Docker version 1.13.1-cs3

installing command :

[root@node2]# docker run -it --rm docker/dtr install \

–dtr-external-url https://node2.docker.prod
–ucp-node node2.docker.prod
–ucp-username admin
–replica-id 8221e06b09c2
–ucp-insecure-tls
–ucp-url https://192.168.234.20

and these ports are opend!

[root@node2]# netstat -antup | grep “80|443”

tcp6 0 0 :::80 :::* LISTEN 50935/dockerd
tcp6 0 0 :::8443 :::* LISTEN 50935/dockerd

i have this on DEBUG:

INFO[0003] UCP cert validation successful
DEBU[0004] Checking for compatible engine version
DEBU[0004] Engine version ucp/2.1.3 is compatible
INFO[0004] The UCP cluster contains the following nodes: node1.docker.prod, node2.docker.prod
DEBU[0004] replica http port = 0
DEBU[0004] replica https port = 0
DEBU[0004] public port constraints: [80 443]
DEBU[0004] Adding constraint for node: node1.docker.prod because of container 29231f1af58df12197e463fb12602f2187cecc9e4ed16e25b52c3c07b52d9d01 with name /ucp-controller using port 443
DEBU[0005] node constraints: [node1.docker.prod node1.docker.prod]
DEBU[0005] replica http port = 0
DEBU[0005] replica https port = 0
INFO[0005] verifying [80 443] ports on node2.docker.prod
DEBU[0005] container create, image = {%!q(bool=false) %!q(bool=false) %!q(bool=false) %!q(bool=false) %!q(bool=false) map[] [] [] [“true”] [] “docker/dtr:2.2.4” [] “dtr-port-test” “” [] “node2.docker.prod” [“80:80” “443:443”] “” %!q(bool=false) [] [] {"" map[]}}
DEBU[0005] creating container with name: dtr-port-test
DEBU[0005] setting node constraint: constraint:node==node2.docker.prod
DEBU[0005] Volume configs set to: []
DEBU[0030] Deleting container a57f6ea347934611cf33e92bb321982425789561e1b9601989bc3fc42edff619
DEBU[0031] Deleting container a57f6ea347934611cf33e92bb321982425789561e1b9601989bc3fc42edff619
DEBU[0031] Failed to remove container: Error response from daemon: Error: No such container: a57f6ea347934611cf33e92bb321982425789561e1b9601989bc3fc42edff619
DEBU[0031] Ignored error Error response from daemon: Error: No such container: a57f6ea347934611cf33e92bb321982425789561e1b9601989bc3fc42edff619…
FATA[0031] Failure to confirm that required ports are not taken: Failed to start port test container: Polling failed with 10 attempts 1s apart: Error response from daemon: Error response from daemon: driver failed programming external connectivity on endpoint dtr-port-test (a5a8e059d0c6573214c65951d796dc91d4ca3ac700bf088d3bbe4870e4ef1b38): Error starting userland proxy: listen tcp 0.0.0.0:80: bind: address already in use

---------------- update------------
i changed the installation to :

docker run -it --rm docker/dtr:latest install --replica-http-port 81 --replica-https-port 4443 --dtr-external-url https://node2.docker.prod --ucp-node node2.docker.prod --ucp-username admin --ucp-insecure-tls --ucp-url https://node1.docker.prod --debug

added the --replica-http-port 81 --replica-https-port 4443 and it started working but now i get this:

WARN[0378] Couldn’t confirm authentication works, but still completing installation: Failed to wait for dtr to come back up: Polling failed with 30 attempts 5s apart: error making request to openid/begin Get https://node2.docker.prod/api/v0/openid/begin: dial tcp 192.168.234.21:443: getsockopt: connection refused

OK! now works.

first of all i definded 2 new ports 81 and 4443 but havent open them at the firewall so it made issues.so:

firewall-cmd --permanent --zone=public --add-port=4443/tcp --permanent
firewall-cmd --permanent --zone=public --add-port=81/tcp --permanent
firewall-cmd --reload

this is the command:

docker run -it --rm docker/dtr:latest install --replica-http-port 81 --replica-https-port 4443 --dtr-external-url https://node2.docker.prod:4443 --ucp-node node2.docker.prod --ucp-username admin --ucp-insecure-tls --ucp-url https://node1.docker.prod --debug

changed the --dtr-external-url
to https://node2.docker.prod:4443 like the port i define on --replica-https-port

now its ok but i with i could make it work on 443 regular port :\

From your first message, it looks like port 80 was being taken by some other process? Could you try just changing it and leaving the https port at 443?

yea but now that its working i dont want to mess it up :\


i made a firewall rule and its working normly if i accsess the web throw 443.

firewall-cmd --permanent --zone=public --add-forward-port=port=443:proto=tcp:toport=4443

I just came across this, as I was hitting the same error. For others looking up this error, in the future, in my case it was having the HTTP Routing Mesh enabled on port 80 that was stopping the installation. I shut off the HRM, and it worked fine.

1 Like