clearlinux / distribution

Placeholder repository to allow filing of general bugs/issues/etc against the Clear Linux OS for Intel Architecture linux distribution
521 stars 29 forks source link

Unable to start any Docker containers that bind ports #2927

Open ljmccarthy opened 1 year ago

ljmccarthy commented 1 year ago

I have some scripts that update and restart my long-lived containers and recently they stopped working.

For example, I am receiving the following error message:

docker: Error response from daemon: driver failed programming external connectivity on endpoint syncthing (409740eeab268768a0071d8d034403a24a11a8399ad351aa3fb2a85928b82fe5): Error starting userland proxy: listen tcp [::]:22000: bind: address already in use.

I have verified with lsof that the ports are not in use by any other process.

Note: I am using the runc runtime, not Kata containers.

ljmccarthy commented 1 year ago

Here's a trivial example which can be used as a test case:

ljmcc@pythagoras~ $ docker run -t -i --rm ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
3153aa388d02: Pull complete 
Digest: sha256:0bced47fffa3361afa981854fcabcd4577cd43cebbb808cea2b1f33a3dd7f508
Status: Downloaded newer image for ubuntu:latest
root@2e3c52d6fe66:/# 
exit
ljmcc@pythagoras~ $ sudo lsof -i :12345
ljmcc@pythagoras~ $ docker run -p 12345:12345 -t -i --rm ubuntu bash
docker: Error response from daemon: driver failed programming external connectivity on endpoint gallant_antonelli (06282f5b0effbe7b8c0a15bf0f67f33bc02f38c94e77711eecc48b5e199e7eec): Error starting userland proxy: listen tcp [::]:12345: bind: address already in use.
bryteise commented 1 year ago

See https://github.com/clearlinux/distribution/issues/2918

apwiggins commented 1 year ago

What's the source for upstream change? Is this an actual directed change or an upstream reportable bug? Docker release notes for v24 make no mention of changes to the ports specfication -- which is a pretty signifcant change given that it would break most docker-compose YAMLs and bash scripts. https://docs.docker.com/engine/release-notes/24.0/

Docker documentation (which I'm assuming is current) shows that a plain port specification is valid. It only mentions using an IP address as an optional improvement https://docs.docker.com/network/ The Clear Linux forum post and workaround doesn't really clear the air and doesn't show that upstream changed port specification behaviour intentionally. This is still a problem and seems to deviate from upstream Docker's intentions.

unfortunately upstream docker changed their syntax for this see also https://community.clearlinux.org/t/docker-issue-on-clear-linux/8927 for discussion/solutions On Sun, Jul 2, 2023 at 11:08 AM moroznah @.> wrote: Multiple VMs updated to 39540, Docker version 24.0.2 no longer starts any containers with port mapping ("-p" option). Ex. error: ERROR: for webapp Cannot start service webapp: driver failed programming external connectivity on endpoint webapp (8b4185c591f7adeba74997fdc78b78bff436dc5cb3bb8efd5b80a4b2f33f8982): Error starting userland proxy: listen tcp [::]:8000: bind: address already in use All these ports are not used and multiple containers worked prior to update. — Reply to this email directly, view it on GitHub https://github.com/clearlinux/distribution/issues/2918, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ54FMCBL7Y77ED46C6NLDXOG2J7ANCNFSM6AAAAAAZ3SUWJU . You are receiving this because you are subscribed to this thread.Message ID: @.>