Ошибки Docker

Содержание
Введение
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
The current user is not in the 'docker-users' group
Docker Desktop requires a newer WSL kernel version
Error response from daemon: conflict: unable to delete 0ce0bf612c50 (must be forced) - image is referenced in multiple repositories
Статьи про 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

Если и это не помогло выполните

sudo chmod 666 /var/run/docker.sock

На всякий случай перелогиньтесь.

Подробнее про администрирование пользователей и групп в 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.

The current user is not in the 'docker-users' group

Если после установки Docker в Windows вы получаете ошибку

The current user is not in the 'docker-users' group. Add yourself to the 'docker-users' group and then log out and back in to Windows.

Исправить ситуацию можно добавив пользователя в группу docker-users из командной строки в режиме администратора

net localgroup docker-users "your-user-id" /ADD

Например:

net localgroup docker-users "AzureAD\Andrei" /ADD

Docker Desktop requires a newer WSL kernel version

Если после установки Docker в Windows вы получаете ошибку


WSL kernel update needed

Значит нужно обновить ядро WSL по этой инструкции.

exec /entrypoint.sh: exec format error

Error response from daemon: conflict: unable to delete 0ce0bf612c50 (must be forced) - image is referenced in multiple repositories

Если при попытке удалить образ вы получаете

Error response from daemon: conflict: unable to delete 0ce0bf612c50 (must be forced) - image is referenced in multiple repositories

Значит этот образ используется в нескольких местах.

Выполните

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE jenkins_nginx_mkdocs-mkdocs 1.0 0ce0bf612c50 10 minutes ago 181MB jenkins_nginx_mkdocs-mkdocs latest 0ce0bf612c50 10 minutes ago 181MB

Видно что IMAGE ID используется два раза:

jenkins_nginx_mkdocs-mkdocs:1.0 и jenkins_nginx_mkdocs-mkdocs:latest

нужно удалять их по отдельности

docker rmi jenkins_nginx_mkdocs-mkdocs:latest

Untagged: jenkins_nginx_mkdocs-mkdocs:latest

Первое удаление отвязывает latest. Второе отвяжет 1.0 и удалит образ.

PS C:\Development\jenkins_nginx_mkdocs> docker rmi jenkins_nginx_mkdocs-mkdocs:1.0

Untagged: jenkins_nginx_mkdocs-mkdocs:1.0 Deleted: sha256:0ce0bf612c5034f803cfe42d7ac0688af9b880148a935ca6995265d0346821a0

Альтернативный способ force delete

docker rmi --force 0ce0bf612c50

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

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: