Docker error response from daemon driver failed programming external connectivity on endpoint

I have tried with the latest version of my channel (Stable or Edge) I have uploaded Diagnostics Diagnostics ID: 082AAF50-9E4F-494D-A533-A10EFE9F0A05/20181009115433 Expected behavior Docker containe...

I have found a working solution for this error for Windows for my case.

My errors after trying lando start was:
Starting myproject_node_1 ... error
(the database, phpmyadmin and appserver started without problems)

a4bcc9ce0e879a28b08be93c8a25206100dc4530e91bcfbf): Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: Only one usage of each socket address

ERROR: for node Cannot start service node: driver failed programming external connectivity on endpointmyproject_node_1 (bc83fa4623b66d59a4bcc9ce0e879a28b08be93c8a25206100dc4530e91bcfbf): Error starting userland proxy: listen tcp 0.0.0.0:3000: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

ERROR: Encountered errors while bringing up the project.

And that repeated a few times.
I know that restarting my pc usually fix this, but as a web developer that uses Docker and Lando everyday, I needed a solution to fix this without restarting my pc.
Closing docker and terminating the docker service did not work.
Adding «live-restore»: true in C:Usersmyusername.dockerconfig.json and restarting docker did not work.
Running command net stop winnat did not work.

ACTUAL WORKING SOLUTION:
error message clearly shows in this case a problem with trying to use port 3000.
So what you need to to is find whatever is hogging that port and kill it:

netstat -ano | findstr :3000

gives you a list of what exactly is using your port 3000:

TCP    0.0.0.0:3000       0.0.0.0:0           LISTENING         18420
TCP    [::]:3000              [::]:0                 LISTENING         18420
TCP    [::1]:3000            [::1]:62760       ESTABLISHED     18420
TCP    [::1]:62760          [::1]:3000         ESTABLISHED     15032

The last column is the PID (process id) that is using your port 3000. In this case: 18420 and 15032.

You can terminate those processes like this (works for me in git bash):

taskkill -F //PID 18420 //PID 15032

After this: lando start starts up without errors and all is working well

I am trying to run a docker example following this documentation

This is my command:

docker run -d -p 80:80 --name webserver nginx

But I get this error:

docker: Error response from daemon: driver failed programming external connectivity on endpoint webserver (bd57efb73c738e3b271db180ffbee0a56cae86c8193242fbc02ea805101df21e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE).

How do I fix this?

senty's user avatar

senty

12.1k26 gold badges124 silver badges256 bronze badges

asked Sep 15, 2016 at 9:49

Istiak Morsalin's user avatar

Istiak MorsalinIstiak Morsalin

10.2k9 gold badges32 silver badges65 bronze badges

From your error message, the EADDRINUSE indicates port 80 is already in use on either the docker VM or possibly directly on your laptop. You can either stop whatever is running on that port, or change the port used in your Docker, command. To change to the external port 8080, use:

docker run -d -p 8080:80 --name webserver nginx

answered Sep 15, 2016 at 20:35

BMitch's user avatar

4

If you are the port i not in use, try restarting docker. That usually works for me.

enter image description here

mikemaccana's user avatar

mikemaccana

103k93 gold badges371 silver badges470 bronze badges

answered Jun 28, 2018 at 14:20

Lone Ronin's user avatar

Lone RoninLone Ronin

2,26017 silver badges29 bronze badges

6

I had the same issue with one of my containers. I tried everything but when nothing worked, I tried the following and launched the container again with success

 sudo service docker stop
 sudo rm /var/lib/docker/network/files/local-kv.db
 sudo service docker start

a.t.'s user avatar

a.t.

1,8773 gold badges21 silver badges60 bronze badges

answered Apr 4, 2018 at 17:35

smishra's user avatar

smishrasmishra

2,94426 silver badges29 bronze badges

4

Try restarting the docker service. It works 99% of the time.

service docker restart

If that didn’t work as expected, try restarting your pc and then restarting the docker service using above command.

If none of the above worked try changing the exposed port to another unused port that should work.

docker run -d -p 81:80 --name webserver nginx

Note :- 81 is the port on your host and 80 is the port on your docker container

answered Jul 1, 2020 at 12:49

Charith Jayasanka's user avatar

4

For the first time, when i made a docker simple web app, i also faced same problem.

Simply you can try the following steps to resolve the problem and also able to understand the reason why you had faced the problem in details.

Step-1: check all the running containers using the command:

docker ps

Step-2: Find out the container id of the container which is running on the same port, you are trying to reach.

enter image description here

Step-3: Stop the container which one is running on the same port using this command:

docker stop <container id> 

Step-4: Again build the container:

docker build -t DockerID/projectName .

Step-5: Again try to run your container on the same port using port mapping.

docker run -p 8080:8080 DockerID/projectName

Nimantha's user avatar

Nimantha

6,6716 gold badges27 silver badges66 bronze badges

answered Sep 9, 2020 at 21:01

Yeasin Arafath's user avatar

Try this command:

sudo service docker restart

If it does not help, restart your server.

sɐunıɔןɐqɐp's user avatar

sɐunıɔןɐqɐp

3,13715 gold badges34 silver badges39 bronze badges

answered Aug 3, 2020 at 8:31

Julius Simanavičius's user avatar

0

Stop all the running containers docker ps -a -q then
Stop the Docker on your machine & restart it.

answered Jul 21, 2019 at 16:28

Som's user avatar

SomSom

4,5784 gold badges28 silver badges32 bronze badges

1

Recently this problem started to happen a lot on Windows. You can try restarting docker or you can manually stop docker before Windows shutdown — docker starts cleanly on reboot. On 7/24/2018 docker issue is open and further details can be found at https://github.com/docker/for-win/issues/1967

answered Jul 25, 2018 at 2:07

sergeyski.com's user avatar

Check what’s on port 80 right now — sudo ss -tulpn | grep :80

You may have apache2 running.
You can check it — sudo service apache2 status
If so — sudo service apache2 statop

John's user avatar

John

2,5034 gold badges18 silver badges33 bronze badges

answered Oct 1, 2020 at 6:59

Developer's user avatar

DeveloperDeveloper

611 silver badge1 bronze badge

1

If you tried all above solutions and still having issues, you can kill LISTEN ports manually as below for Linux users

  1. sudo lsof -i -P -n | grep LISTEN
    enter image description here
  2. sudo kill -9 <process_pid> (ex. sudo kill -9 28563 28575 28719 28804)

answered Jan 1, 2022 at 11:33

ibrahimkesici's user avatar

In my case, port 80 is the default port for the web server and therefore it is protected. I changed the bind to port 60:8080 to ensure no deeper issues. Changing the bind to a different port allows me to execute the docker run and hit it in the browser at http://ip:60

answered Sep 24, 2019 at 19:33

lakewood's user avatar

lakewoodlakewood

5871 gold badge4 silver badges21 bronze badges

I had same problem with same error.
As long as I had a local nginx installed in my computer, running another nginx through the container made conflict in port :80.
Simply I tried to stop the service of my local installed nginx as below:

sudo service nginx stop

Then after, I could run nginx by docker-compose up -d without any problem:

Creating MyWebServer ... done
Creating mongo    ... done
Creating redis    ... done

answered Jan 31, 2022 at 19:33

mabedis's user avatar

For me, a simple

ddev poweroff

fixed this.

answered Feb 16, 2021 at 9:31

janisch's user avatar

janischjanisch

1391 silver badge12 bronze badges

If this case is with Redis: remove the ports - ... in the docker-compose file and let it assign by itself. or change the port mapping in the host from 6379:6379 to 6378:6379 that worked for me.

answered Oct 28, 2021 at 9:21

Aman Kassahun's user avatar

1

windows users: docker description

On Windows systems, CTRL+C does not stop the container. So, first type
CTRL+C to get the prompt back (or open another shell), then type
docker container ls to list the running containers, followed by docker
container stop to stop the container.
Otherwise, you get an error response from the daemon when you try to
re-run the container in the next step.

I had the same problem, I thought with CTRL+C stoped the container but it was not the case, any af the answer above works because they all stop containers, restarting docker or stoping container explicity.

I prefer:

docker container ls #list containers running
docker stop [container id] #replace [container id] with the container id running

answered Jan 27, 2019 at 22:36

John Balvin Arias's user avatar

This seems to be an incompatibility problem with windows «fast-boot» as described here: (just restart the docker service) and it may work.

https://github.com/docker/for-win/issues/2722

This is caused by an incompatibility with Docker and fastboot. You can either make sure you stop all containers before shutting Windows down or you can disable fastboot in Windows’ power settings by doing the following:

CTRL+R > "powercfg.cpl" > "Choose what the power buttons do" > "Change settings that are currently unavailable" > Deselect "Turn on fast start-up"

You can also disable fastboot with a single command in powershell if you’re comfortable doing so:

Set-ItemProperty 'HKLM:SYSTEMCurrentControlSetControlSession ManagerPower' -Name HiberbootEnabled -Value 0

answered Feb 21, 2019 at 16:22

atom88's user avatar

atom88atom88

1,3393 gold badges21 silver badges31 bronze badges

If you are using WSL, after i tried all above and still it doesn’t work, i tried to restart the WSL from Powershell with admin privileges and shutdown command:

wsl --shutdown

That worked for me.

answered Jan 31 at 9:46

shdr's user avatar

shdrshdr

7537 silver badges24 bronze badges

Содержание

  1. Ошибки Docker
  2. Введение
  3. Bind for 0.0.0.0:80 failed: port is already allocated.
  4. the input device is not a TTY
  5. ls: cannot access
  6. Got permission denied
  7. unable to prepare context: context must be a directory
  8. docker.io : Depends: containerd

Ошибки Docker

Введение

В этой статье вы можете найти ошибки с которыми я встретился при работе с Docker

Инструкции по работе с Docker можете прочитать здесь и здесь

Bind for 0.0.0.0:80 failed: port is already allocated.

docker: Error response from daemon: driver failed programming external connectivity on endpoint web (8b4ccb280aa958668c714013462f1a84334118d41bbd5505e7bfdc23331c2ce5): Bind for 0.0.0.0:80 failed: port is already allocated.

Скорее всего у Вас уже запущен контейнер который слушает порт 80

Посмотрите какой контейнер из тех что Up использует порт 80 — это видно в столбце PORTS

Остановите его командой

docker stop имя_контейнера

Обратите внимание на то, что имя контейнера может не совпадать с именем образа. Вам нужен столбец NAMES

docker: Error response from daemon: driver failed programming external connectivity on endpoint quirky_khayyam (ee99ee75b322c083c0f2e34395785fa23d2217a7f21fb62c6acf9d6f10ffd68b): Error starting userland proxy: listen tcp4 0.0.0.0:5000: bind: address already in use.

the input device is not a TTY

the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winpty’

Скорее всего вы пытаетесь запустить, например, ubuntu в docker под Windows . Например

docker exec -it myubuntu bash

Попробуйте последовать совету и выполнить

winpty docker exec -it myubuntu bash

ls: cannot access

ls: cannot access ‘C:/Program Files/Git/’: No such file or directory

Скорее всего у вас запущен, например, ubuntu в docker под Windows и вы пытаетесь выполнить какую-то команду внутри контейнера используя /

docker exec myubuntu ls /

docker exec myubuntu cat /data.txt

Попробуйте выполнить без /

docker exec myubuntu ls

docker exec myubuntu cat data.txt

Got permission denied

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied. See ‘docker run —help’.

Возможно, пользователь который запускает docker run не состоит в группе docker.

Проверить есть ли группа docker можно командой

andrei adm cdrom sudo dip plugdev lpadmin lxd sambashare docker

Если группа docker уже есть — переходите к следующему шагу. Если её нет — создайте командой

sudo groupadd docker

Нужно добавить пользователя в группу docker командой

sudo usermod -aG docker username

Осталось только перелогиниться и всё должно заработать

Если не помогло — выполните дополнительно

Подробнее про администрирование пользователей и групп в Linux читайте в статье «Пользователи Linux»

unable to prepare context: context must be a directory

unable to prepare context: context must be a directory: /home/andrei/docker/Dockerfile

Обычно эта ошибка возникает при неудачной попытке явно указать какой Dockerfile нужно использовать для сборки контейнера.

Пример правильного указания докерфайла с помощью опции -f

docker build -t andrei-debian:1.0 -f Dockerfile-debian .

Подробности о сборке контейнеров читайте в статье docker build

debconf: unable to initialize frontend: Dialog debconf: (TERM is not set, so the dialog frontend is not usable.) debconf: falling back to frontend: Readline debconf: unable to initialize frontend: Readline debconf: (Can’t locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7, <> line 18.) debconf: falling back to frontend: Teletype dpkg-preconfigure: unable to re-open stdin:

Configuring tzdata —————— Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of cities, representing the time zones in which they are located. 1. Africa 6. Asia 11. System V timezones 2. America 7. Atlantic Ocean 12. US 3. Antarctica 8. Europe 13. None of the above 4. Australia 9. Indian Ocean 5. Arctic Ocean 10. Pacific Ocean Geographic area:

После ввода зависает

docker.io : Depends: containerd

При попытке установить Docker в Ubuntu

sudo apt install docker.io

Reading package lists. Done Building dependency tree Reading state information. Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: docker.io : Depends: containerd (>= 1.2.6-0ubuntu1

) E: Unable to correct problems, you have held broken packages.

Нужно обновить apt и установить containerd

sudo apt -y update
sudo apt -y upgrade
sudo apt -y install containerd

Reading package lists. Done Building dependency tree Reading state information. Done The following additional packages will be installed: runc The following packages will be REMOVED: containerd.io docker-ce The following NEW packages will be installed: containerd runc 0 upgraded, 2 newly installed, 2 to remove and 0 not upgraded. Need to get 36.9 MB of archives. After this operation, 45.6 MB disk space will be freed. Get:1 http://fi.archive.ubuntu.com/ubuntu focal-updates/main amd64 runc amd64 1.1.0-0ubuntu1

20.04.1 [3,892 kB] Get:2 http://fi.archive.ubuntu.com/ubuntu focal-updates/main amd64 containerd amd64 1.5.9-0ubuntu1

20.04.4 [33.0 MB] Fetched 36.9 MB in 5s (7,316 kB/s) (Reading database . 254483 files and directories currently installed.) Removing docker-ce (5:20.10.18

ubuntu-focal) . Warning: Stopping docker.service, but it can still be activated by: docker.socket Removing containerd.io (1.6.8-1) . Selecting previously unselected package runc. (Reading database . 254461 files and directories currently installed.) Preparing to unpack . /runc_1.1.0-0ubuntu1

20.04.1_amd64.deb . Unpacking runc (1.1.0-0ubuntu1

20.04.1) . Selecting previously unselected package containerd. Preparing to unpack . /containerd_1.5.9-0ubuntu1

20.04.4_amd64.deb . Unpacking containerd (1.5.9-0ubuntu1

20.04.4) . Setting up runc (1.1.0-0ubuntu1

20.04.1) . Setting up containerd (1.5.9-0ubuntu1

20.04.4) . Processing triggers for man-db (2.9.1-1) .

Источник

Содержание

Введение
Bind for 0.0.0.0:80 failed: port is already allocated
the input device is not a TTY
ls: cannot access
Got permission denied while trying to connect to the Docker daemon socket
unable to prepare context: context must be a directory
Error response from daemon: unable to find user andrei: no matching entries in passwd file
Статьи про Docker

Введение

В этой статье вы можете найти ошибки с которыми я встретился при работе с

Docker

Инструкции по работе с Docker можете прочитать

здесь

и

здесь

Bind for 0.0.0.0:80 failed: port is already allocated.

docker: Error response from daemon: driver failed programming external connectivity on endpoint web (8b4ccb280aa958668c714013462f1a84334118d41bbd5505e7bfdc23331c2ce5): Bind for 0.0.0.0:80 failed: port is already allocated.

Скорее всего у Вас уже запущен контейнер который слушает порт 80

Выполните

docker ps -a

Посмотрите какой контейнер из тех что Up использует порт 80 — это видно в столбце PORTS

Остановите его командой

docker stop имя_контейнера

Обратите внимание на то, что имя контейнера может не совпадать с именем образа. Вам нужен столбец NAMES

Похожая ошибка

docker: Error response from daemon: driver failed programming external connectivity on endpoint quirky_khayyam (ee99ee75b322c083c0f2e34395785fa23d2217a7f21fb62c6acf9d6f10ffd68b): Error starting userland proxy: listen tcp4 0.0.0.0:5000: bind: address already in use.

the input device is not a TTY

the input device is not a TTY. If you are using mintty, try prefixing the command with ‘winpty’

Скорее всего вы пытаетесь запустить, например,

ubuntu

в docker под

Windows
. Например

docker exec -it myubuntu bash

Попробуйте последовать совету и выполнить

winpty docker exec -it myubuntu bash

ls: cannot access

ls: cannot access ‘C:/Program Files/Git/’: No such file or directory

Скорее всего у вас запущен, например, ubuntu в docker под

Windows
и вы пытаетесь выполнить какую-то команду внутри контейнера используя /

docker exec myubuntu ls /

или

docker exec myubuntu cat /data.txt

Попробуйте выполнить без /

docker exec myubuntu ls

или

docker exec myubuntu cat data.txt

Got permission denied

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See ‘docker run —help’.

Возможно, пользователь который запускает docker run не состоит в группе docker.

Проверить есть ли группа docker можно командой

groups

andrei adm cdrom sudo dip plugdev lpadmin lxd sambashare docker

Если группа docker уже есть — переходите к следующему шагу. Если её нет — создайте командой

sudo groupadd docker

Нужно добавить пользователя в группу docker командой

sudo usermod -aG docker username

Осталось только перелогиниться и всё должно заработать

Если не помогло — выполните дополнительно

newgrp docker

Подробнее про администрирование пользователей и групп в

Linux

читайте в статье

«Пользователи Linux»

unable to prepare context: context must be a directory

unable to prepare context: context must be a directory: /home/andrei/docker/Dockerfile

Обычно эта ошибка возникает при неудачной попытке явно указать какой

Dockerfile

нужно использовать для

сборки

контейнера.

Пример правильного указания докерфайла с помощью опции -f

docker build -t andrei-debian:1.0 -f Dockerfile-debian .

Подробности о сборке контейнеров читайте в статье

docker build

debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can’t locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 7, <> line 18.)
debconf: falling back to frontend: Teletype
dpkg-preconfigure: unable to re-open stdin:

Configuring tzdata
——————

Please select the geographic area in which you live. Subsequent configuration
questions will narrow this down by presenting a list of cities, representing
the time zones in which they are located.

1. Africa 6. Asia 11. System V timezones
2. America 7. Atlantic Ocean 12. US
3. Antarctica 8. Europe 13. None of the above
4. Australia 9. Indian Ocean
5. Arctic Ocean 10. Pacific Ocean
Geographic area:

После ввода зависает

docker.io : Depends: containerd

При попытке установить Docker в

Ubuntu

sudo apt install docker.io

Возникает ошибка

Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
docker.io : Depends: containerd (>= 1.2.6-0ubuntu1~)
E: Unable to correct problems, you have held broken packages.

Нужно обновить apt и установить containerd

sudo apt -y update

sudo apt -y upgrade

sudo apt -y install containerd

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following additional packages will be installed:
runc
The following packages will be REMOVED:
containerd.io docker-ce
The following NEW packages will be installed:
containerd runc
0 upgraded, 2 newly installed, 2 to remove and 0 not upgraded.
Need to get 36.9 MB of archives.
After this operation, 45.6 MB disk space will be freed.
Get:1 http://fi.archive.ubuntu.com/ubuntu focal-updates/main amd64 runc amd64 1.1.0-0ubuntu1~20.04.1 [3,892 kB]
Get:2 http://fi.archive.ubuntu.com/ubuntu focal-updates/main amd64 containerd amd64 1.5.9-0ubuntu1~20.04.4 [33.0 MB]
Fetched 36.9 MB in 5s (7,316 kB/s)
(Reading database … 254483 files and directories currently installed.)
Removing docker-ce (5:20.10.18~3-0~ubuntu-focal) …
Warning: Stopping docker.service, but it can still be activated by:
docker.socket
Removing containerd.io (1.6.8-1) …
Selecting previously unselected package runc.
(Reading database … 254461 files and directories currently installed.)
Preparing to unpack …/runc_1.1.0-0ubuntu1~20.04.1_amd64.deb …
Unpacking runc (1.1.0-0ubuntu1~20.04.1) …
Selecting previously unselected package containerd.
Preparing to unpack …/containerd_1.5.9-0ubuntu1~20.04.4_amd64.deb …
Unpacking containerd (1.5.9-0ubuntu1~20.04.4) …
Setting up runc (1.1.0-0ubuntu1~20.04.1) …
Setting up containerd (1.5.9-0ubuntu1~20.04.4) …
Processing triggers for man-db (2.9.1-1) …

docker run -d -p 5000:5000 productservice

docker: Error response from daemon: unable to find user andrei: no matching entries in passwd file.

При попытке установить Docker в

Ubuntu

docker: Error response from daemon: unable to find user andrei: no matching entries in passwd file.

Похожие статьи

Docker
Установка в Linux и Windows
Основы
images: Образы
build: Создание контейнеров + примеры
run: Опции запуска контейнера
Dockerfile
Остановить/удалить все контейнеры
exec: выполнить команду в контейнере
docker compose
Установка docker compose в Linux
Видеоуроки
Ошибки
Make

docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (3d8d89f260c9258467f589d4d7d0c27e33ab72d732d1115d1eb42d708606edc4):
So far, the container is occupied

# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED              STATUS    PORTS     NAMES
a57959032cc9   mysql:5.7   "docker-entrypoint.s…"   About a minute ago   Created             mysql
# docker rm a57959032cc9
a57959032cc9

Error starting userland proxy: listen tcp4 0.0.0.0:3306: bind: address already in use.
the following is the occupied port number

# netstat -tanlp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      948/sshd            
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      9217/mysqld         
tcp        0      0 172.18.7.111:39412      100.100.45.106:443      TIME_WAIT   -                   
tcp        0      0 172.18.7.111:22         58.100.92.78:9024       ESTABLISHED 6899/sshd: [email protected] 

See for yourself which is occupied, and then delete it with kill + port number

Read More:

Yeah! Back to dockers! I’m not going to explain what they are (just read my previous posts) and what I want to do, just I’m going to tell you how I fixed the error. Something as simple as running an nginx docker was not working the way I liked it, since I wanted to assign a fixed IP to it. Like this:

 docker run -p 1.2.3.4:80:80 nginx

Error reads:

Status: Downloaded newer image for nginx:latest
docker: Error response from daemon: driver failed programming external connectivity on endpoint ...: 
Error starting userland proxy: 
listen tcp4 1.2.3.4:80: bind: cannot assign requested address.
ERRO[0008] error waiting for container: context canceled 

Documentation says that we need to create a docker network. We do so with the defaults.

docker network create dockernet
docker network list
NETWORK ID      NAME        DRIVER    SCOPE
saddsdsafsdas   bridge      bridge    local
pietwprweripi   dockernet   bridge    local
2340899423240   host        host      local
xczcxzzxcvbbn   none        null      local

And try again to launch our nginx.

docker run  --ip="1.2.3.4" -p 1.2.3.4:80:80 --network dockernet nginx
docker: Error response from daemon: user specified IP address is supported only when connecting to networks with user configured subnets.
ERRO[0000] error waiting for container: context canceled 

So it looks like we need to configure dockernet. We remove it and try again with some range (sorry for the strange IPs, but you know, secrecy)

docker network rm dockernet
dockernet
docker network create --driver=bridge --subnet=192.168.0.0/16 dockernet
docker run  --ip="1.2.3.4" --network dockernet nginx

And now everything seems to work. Careful with this, you may end up kicking out the host from the network if you don’t configure the subnet properly!

Понравилась статья? Поделить с друзьями:
  • Docker error response from daemon could not select device driver with capabilities gpu
  • Docker error response from daemon conflict unable to remove repository reference
  • Docker error response from daemon conflict the container name is already in use by container
  • Docker error response from daemon cgroups cannot find cgroup mount destination unknown
  • Docker error response from daemon bad response from docker engine