November 15, 20241 yr Hello, I'm currently using UNRAID 6.12.10. Recently I started getting an Execution error whenever I try to start a particular container (Jackett). If I start it from the command line, I get a little more details: # docker start jackett Error response from daemon: driver failed programming external connectivity on endpoint jackett (c416528d960abb5b43aeba21188ba5e9a1ed0f6bbd47bb78569cfe80b29a71e2): Bind for 0.0.0.0:9117 failed: port is already allocated Error: failed to start containers: jackett So I check to see what is using the port, and it's docker-proxy: # sudo ss -tunlp | grep 9117 tcp LISTEN 0 4096 0.0.0.0:9117 0.0.0.0:* users:(("docker-proxy",pid=9917,fd=4)) tcp LISTEN 0 4096 [::]:9117 [::]:* users:(("docker-proxy",pid=9924,fd=4)) I don't see these ports in use when I do docker ps. If I kill these processes, it doesn't seem to actually free the ports, as the Jackett container still can't start. I searched online for similar issues and saw people having trouble with docker-proxy occupying a port and preventing a container from starting, and the resolution was to stop the docker service and delete the file /var/lib/docker/network/files/local-kv.db and restart docker, but this didn't help in my case. Does anyone have any suggestions on something I can do to find out why docker-proxy is hanging onto that port and how to stop it?
November 15, 20241 yr Can't help with the docker port assignment, other than to suggest changing ports in the container and forget about it. But what I can suggest is running a current version of Unraid, as 6.12.10 is over 7 months old and I can't think that anyone wants to jump back to it to double-check to see if it's something that's been fixed but undocumented.
November 28, 20241 yr Author Thanks for the suggestions! I updated to 6.12.13 and am still experiencing the issue. I'd like to avoid changing the port because I use the URL of the Jackett container in the configuration of all my other containers and would need to update all of those. Maybe this should be my impetus to set up an internal reverse proxy, but that's another story. I tried changing Jackett to another port to see if that would somehow free up the original port. Jackett started fine of course but the old port remained in use. Switching back to the original port and it wouldn't start as expected. I tried running nmap to see if I could get any more information and it reported that the port was closed. I'm kind of resigned to changing the port and reconfiguring, but having a port permanently occupied by some sort of zombie process doesn't sit right with me.
November 28, 20241 yr Community Expert Since you already rebooted, it wouldnt be a zombie process. So what Docker container are you running in host mode? Edit: Heres a list of container compiled that are using said port by default and are currrently available on the app store. jackett openvpn-antizapret binhex-jackett jackettvpn UnRaid doesnt use said port at all. So good luck finding whatever container it is. Edited November 28, 20241 yr by Mainfrezzer
November 28, 20241 yr Author I didn't mean zombie process in the traditional sense, I just couldn't think of a better way to describe docker-proxy reserving the port for a container/process that isn't running. I'm running cloudflared-tunnel and Plex-Media-Server in host mode. Is there something wrong with having these configured this way? I made a little bit of progress on my own. Before, I'd mentioned other users on different operating systems reporting success by stoping docker, deleting /var/lib/docker/network/files/local-kv.db, and starting docker. A few weeks ago, I tried this and noticed the entire /var/lib/docker directory is empty when Docker isn't running. I decided to pursue this a little further today and tried deleting local-kv.db *before* stopping Docker, and when I restarted it, it was no longer reserving port 9117 when starting up and I was able to start Jackett on that port! I'm guessing Unraid manages /var/lib/docker differently than other systems and its directory is unmounted when not running. However, I have one issue that came up after doing this. My wireguard vpn network isn't an option in Docker anymore, I onlly have the options Bridge, Host, None, and br0. I wasn't sure how to add it back, but I went into Unraid's VPN settings and just re-applied the settings and it appeared. However, while the containers using the wiregurd network are able to obtain IP addresses. I'm unable to connect to their web addresses and from one of the container's shell, i'm not able to ping any Internet or local IP addresses. I ended up deleting and recreating the tunnel and now everything is working, phew.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.