проблема з докером


32

Я намагаюся дізнатися про "Docker" в ubuntu 15.04.

Коли я даю будь-яку команду за допомогою докера, наприклад "docker run image", вона отримує таку помилку:

FATA[0000] Post http:///var/run/docker.sock/v1.17/containers/create: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?

Я не розумію, що це означає.


5
Я отримував це повідомлення про помилку, а потім розпочав демон sudo service docker start. Тоді я зміг бігати sudo docker run hello-world. Удачі.
обстріл

Відповіді:


31

Існує дві можливі причини, чому ви отримуєте цю помилку:

  1. Демон Докера не працює. Ви можете перевірити це за допомогою sudo /etc/init.d/docker status.

  2. Демон Docker працює, але налаштований не для прослуховування /var/run/docker.sock. Ви можете зареєструватися, /etc/default/dockerчи -Hвказана будь-яка опція в DOCKER_OPTS.


3
+1. Мені просто довелося скористатися $ sudo service docker statusз моменту отримання$ sudo /etc/init.d/docker status * Docker is managed via upstart, try using service docker status
IsaacS

Після запуску sudo /etc/init.d/docker statusя зрозумів, що служба докера зникла. Я біжу sudo /etc/init.d/docker start, тоді мені вдалося запустити своє зображення докера.
Халіл

Здається / etc / default / docker більше не корисний у systemd (Ubuntu 16.04+). BTW на систематизованому канонічному способі перевірити статус демона було б sudo systemctl status docker.
Пабло А

38

Після установки Docker вам буде запропоновано додати свого користувача до групи докерів. Просто запустіть показану команду:

sudo usermod -aG docker $USER

Вам потрібно буде закрити сеанс і знову увійти, щоб зміни набрали чинності.


мабуть, найпростіший. Я не знаю, чи працює, хоча відповідь (використано @ decebal's).
Yair Daon

Я не отримав цього підказу. Я на Raspberry Pi.
ІгорГанапольський

Щоб пізніше додати себе до докерної групи, запустіть sudo usermod -a -G docker <user>. Дивіться тут для отримання додаткової інформації.
Х'ю Ш

3
Акцент на "закрити свою сесію" - дякую!
Dolan Antenucci

У Ubuntu 18.04 з Gnome мені довелося перезапустити систему, щоб це працювало. Тільки вихід із системи та вихід із системи в систему не працювали: /
Zoltán

15

Спробуйте перезавантажити ОС після встановлення докера, щоб застосувати групові дозволи, якщо ваш користувач приєднався до групи докерів ..

Оновлення:

Під час встановлення Docker на ubuntu 14.04, інсталятор рекомендує додавати користувачеві групу Docker для доступу до Docker Service.

Подивись на

Демон докера прив'язується до сокета Unix замість порту TCP. За замовчуванням Unix-сокет належить користувачу root, а інші користувачі можуть отримати доступ до нього за допомогою sudo. З цієї причини демон docker завжди працює як користувач root. Щоб уникнути необхідності використовувати sudo під час використання команди docker, створіть групу Unix під назвою docker та додайте до неї користувачів. Коли запускається демон докера, він робить право власності на сокет Unix читати / записувати групою докер.

джерело: https://docs.docker.com/installation/ubuntulinux/#create-a-docker-group


2
Вам слід пояснити, чому це допоможе.
Гунтберт

1
@guntbert Я оновив свою відповідь ..
MURATSPLAT

@MURATSPLAT, QBi, gunbert Дякую я знайти рішення
ріші Kant

Для отримання ефекту зміни дозволу на групу. Вам не потрібно перезавантажувати. вихід досить.
Тім Ву

@TimWu У Ubuntu 18.04 з Gnome мені довелося перезапустити систему - просто вихід із системи та повернення не працювали: /
Zoltán

10

спробуйте використати, sudo docker imagesщоб перевірити, чи є контейнери, що викликаються <image>у вашого хоста.

при запуску docker run <image>почнеться контейнер, який називається <image>у вашому хост-комп'ютері, якщо у вашому хост-комп'ютері немає цього контейнера, то докер автоматично витягне контейнер з назвою '' з концентраторного сховища так само, як у вас працює docker pull <image>. Тоді, якщо воно все ще не може знайти зображення під назвою "", воно покаже це повідомлення про помилку.

ви можете спробувати замінити, щоб hello-worldперевірити, чи працює докер на вашому комп’ютері.

sudo docker run hello-world

Також слід перевірити, чи варто використовувати sudo.


2
Якщо проблема полягала в тому, що ОП не використовує sudo, то повідомлення про помилку було б "відмовлено у дозволі", а не "такого файлу чи каталогу".
Андреас Вейтен

1
Так, ти маєш рацію. Я спробував це, якщо користувач не має дозволу, повідомлення про помилку було б:FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS?
realhu

2
спробуйте надати дозволиsudo usermod -a -G docker ec2-user
AB

4

Я знайшов цю статтю корисною: https://docs.docker.com/articles/systemd/ ; Я керував нею в декількох середовищах і працював, сподіваюся, він теж допоможе вам


Відповіді лише для посилань не вважаються прийнятними. Будь ласка, деталізуйте свою відповідь, щоб бути повною.
Flimzy

2
Хоча це теоретично може відповісти на питання, бажано було б сюди включити істотні частини відповіді та надати посилання для довідки.
Мітч

1
Це системне посилання видається мертвим. Ось ще посилання docs.docker.com/engine/admin/systemd
wsams

2

Я отримав подібне повідомлення під час спроби витягнути зображення. Я щойно зробив це, sudo suі тоді зміг успішно витягнути зображення.


2
Ласкаво просимо до Ask Ubuntu! Рекомендую відредагувати цю відповідь, щоб розширити її конкретними деталями про те, як це зробити. (Див. Також Як я написати гарну відповідь? Для загальних порад про те, які різновиди відповідей вважаються найціннішими в Ask Ubuntu.) Будьте в курсі, що запуск Docker як суперкористувача вже багато разів пропонується.
Девід Фоерстер,

я отримав рішення своєї проблеми.
rishi kant
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.