Я установил docker-machine 0.1.0 и docker-compose 1.1.0 в Mac OS 10.8.5.
Docker-машина работает нормально и может подключаться через Docker-машину SSH.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
Однако не может подключиться из docker-compose.
$ docker-compose up
Не удалось подключиться к демону Docker по адресу http + unix: //var/run/docker.sock - он работает?
Если он находится в нестандартном месте, укажите URL-адрес с помощью переменной среды DOCKER_HOST.
Мой Dockerfile и docker-compose.yml здесь.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
докер-compose.yml
web:
build: .
Почему не удается подключиться? Любые идеи?
docker
docker-compose
DIGITALSQUAD
источник
источник
docker-machine
как root? Я только что пришел сюда с той же проблемой на Ubuntu, и это были разрешения на сокете -sudo
сделали свое дело.sudo service docker restart
илиsudo service docker start
я решил это с этим.Ответы:
Докер работает. Но вам нужно экспортировать некоторую среду для подключения к машине Docker. По умолчанию
docker
клиент CLI пытается связаться с демоном с помощьюhttp+unix://var/run/docker.sock
(как показано в сообщении об ошибке).Экспортируйте правильные переменные окружения, используя,
eval $(docker-machine env dev)
а затем повторите попытку. Вы также можете просто запустить,docker-machine env dev
чтобы увидеть переменные окружения, которые он будет экспортировать. Обратите внимание, что один из нихDOCKER_HOST
, так же, как и в сообщении об ошибке, может потребовать установки.источник
eval "$(docker-machine env default)"
) в свой bin / postactivate, чтобы убедиться, что она всегда актуальна.$ eval $(docker-machine env dev) Command 'docker-machine' not found, but can be installed with: sudo snap install docker
Простое решение для меня:
sudo docker-compose up
ОБНОВЛЕНИЕ 2016-3-14: В какой-то момент процесса установки docker (или docker-compose?) Есть предложение и пример добавления вашего имени пользователя в группу «docker». Это позволяет вам избежать использования sudo перед всеми командами docker, например:
Внимательно посмотрите на вывод команд установки (как docker, так и 2-й установки для docker-compose), и вы найдете необходимый шаг. Это также задокументировано здесь: https://subosito.com/posts/docker-tips/
ОБНОВЛЕНИЕ 2017-3-9
Инструкции по установке Docker были обновлены здесь.
Действия после установки для Linux
Этот раздел содержит дополнительные процедуры для настройки хостов Linux для лучшей работы с Docker.
Управление Docker от имени пользователя без полномочий root
Демон docker связывается с сокетом Unix вместо порта TCP. По умолчанию этот сокет Unix принадлежит пользователю root, и другие пользователи могут получить к нему доступ только через sudo. Демон docker всегда запускается от имени пользователя root.
Если вы не хотите использовать sudo при использовании команды docker, создайте группу Unix с именем docker и добавьте в нее пользователей. Когда запускается демон docker, он делает владение сокетом Unix доступным для чтения / записи группой docker.
Чтобы создать группу Docker и добавить своего пользователя:
Эта команда загружает тестовое изображение и запускает его в контейнере. Когда контейнер запускается, он печатает информационное сообщение и завершает работу.
источник
newgrp docker
sudo docker-compose up
». Когда я пытаюсь это сделать, я получаю:sudo: docker-compose: command not found
Если вы начали использовать docker
sudo
, то вам нужно запустить docker-compose сsudo
Like:sudo docker-compose up
источник
sudo docker-compose build
вместоdocker-compose build
.По умолчанию демон docker всегда запускается от имени пользователя root, поэтому вам необходимо присоединиться
sudo
к командам Docker.Если вы не хотите использовать sudo при использовании команды docker, создайте группу Unix с именем docker и добавьте в нее пользователей. Когда запускается демон docker, он делает владение сокетом Unix доступным для чтения / записи группой docker.
Чтобы создать группу Docker и добавить своего пользователя:
Создайте группу докеров.
$ sudo groupadd docker
Добавьте вашего пользователя в группу Docker.
$ sudo usermod -aG docker $USER
Выйдите из системы и снова войдите в нее, чтобы вновь оценить членство в группе.
Убедитесь, что вы можете использовать команды Docker без sudo.
$ docker run hello-world
Эта команда загружает тестовое изображение и запускает его в контейнере. Когда контейнер запускается, он печатает информационное сообщение и завершает работу.
Описанные выше шаги взяты из официальной документации Docker .
источник
docker-compose
роль владельца,/usr/local/bin/docker-compose
а затем перезапустил службуgroup
членство может быть обновлено,su - $USER
чтобы сохранитьКогда вы получаете сообщение об ошибке :
Решение будет:
Сначала попробуйте убедиться, что Docker Service запущен и работает, как и ожидалось, на вашем удаленном / локальном компьютере:
sudo service docker status
если нет - запустить
sudo service docker start
илиsudo systemctl start docker
(зависит от некоторых версий Linux, см. инструкции по началу работы с Docker ).Во-вторых, запустите докер как sudo
sudo docker-compose up
источник
sudo systemctl start docker
- запустить сервис Docker.sudo docker-compose up
после этого.У меня есть Fedora 26, и, пытаясь решить ту же проблему, я в итоге зашел на страницу Docker Compose на странице разработчиков Fedora, а затем на страницу Docker для разработчиков Fedora , которая мне помогла.
Вероятно, докер-сервис, рассматриваемый сообществом, должен запускаться с системой и постоянно работать в фоновом режиме, но для меня это было не так очевидно, и поэтому я могу подумать, почему нет такого популярного ответа, как этот.
На странице разработчиков Fedora есть инструкция, как включить Docker для запуска с системой:
sudo systemctl enable docker
источник
systemctl
с ,launchctl
если вы работаете на Mac.Если вы используете Linux, возможно, вы не
docker-machine
установили его, поскольку он установлен по умолчанию только на компьютерах Windows и Mac.В этом случае вам нужно будет перейти по адресу : https://docs.docker.com/machine/install-machine/, чтобы найти инструкции по его установке в вашей версии Linux.
После установки повторите попытку,
docker-compose up
прежде чем пытаться что-либо перечисленное выше.Надеюсь, это кому-нибудь поможет. Это сработало для моей установки devilbox в Fedora 25.
источник
Помимо добавления пользователей в группу Docker, чтобы избежать
sudo
повторного ввода , вы также можете создать псевдоним дляdocker
таких команд:источник
если вы используете docker-machine, то вы должны активировать окружение с помощью переменной env . если вы не используете docker-machine, то запускайте команды с помощью sudo
источник
Кто-нибудь проверял логи?
В моем случае сообщение об ошибке
/var/log/upstart/docker.log
было:Стоит упомянуть, что я включил vpn, так что:
$ sudo service openvpn stop $ sudo service docker restart $ docker-compose up|start $ sudo service openvpn start
было решение.источник
Ответ от @srfrnk у меня работает.
В моей ситуации у меня был следующий файл docker-compose.yml:
./docker-runtime
владелец и группа - этоroot
когда другие файлы владельца - мой пользователь. Когда я пытался построитьnginx
Я добавил
./docker-runtime
к ,.dockerignore
и это решить мою проблему.источник
во время бега
docker-compose pull
- я получаю ниже ошибкиэто работает?
решение -
проблема решена
источник
У меня были те же симптомы.
Только различие, что это произошло только во время работы
docker-compose build
docker ps
. Случалось и с версией2.x
так же3.x
. Перезапущенdocker
сервис, потом машина ... Даже переустановилdocker
+docker-compose
.Перепробовал все, но ничего не помогло.
Наконец, я попытался собрать Dockerfile «вручную» с помощью
docker build
.Видимо у меня была проблема с правами доступа к файлу / папке внутри
Docker
контекста. Он пытался прочитать контекст при запуске сборки и потерпел неудачу с соответствующим сообщением об ошибке. Однако это сообщение об ошибке не распространяется наdocker-compose
который только показываетCouldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
Обнаружив, что решением было просто добавить файл / папку в
.dockerignore
файл, поскольку он не был необходим для сборки. Другое решение, возможно, былоchown
илиchmod
это.В любом случае, возможно, это может помочь кому-то столкнуться с той же проблемой, которая на самом деле не имеет ничего общего с
docker
вводящим в заблуждение сообщением об ошибке.источник
chown
/chmod
исправил это. Страшное сообщение об ошибке, но они работают над этим. См github.com/docker/compose/issues/5318$ sudo docker-compose up
Я выполнил шаги, описанные в ответе выше, чтобы добавить $ USER в групповой докер. я не хотел добавлять новый групповой докер, потому что в моей установке докера автоматически создавалась группа с именем docker.
Docker CE установлен и работает. Группа докеров создана, но к ней не добавлено ни одного пользователя. Вам нужно использовать sudo для запуска команд Docker. Перейдите к постинсталляции Linux, чтобы позволить непривилегированным пользователям запускать команды Docker и другие необязательные этапы настройки.
но использование docker-compose также не сработало. Это дало такую же предыдущую ошибку. Так что в моем случае (Ubuntu 18.10) sudo docker-compose исправил проблему.
ps: @ спасибо за совет.
источник
Я знаю, что это глупо, но в моем случае я просто попытался,
sudo
и это сработало как шарм.в вашем случае просто попробуйте:
$ sudo docker-compose up
источник
попробуй это:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
источник
Я решил проблему, используя следующие шаги
сейчас работает docker-compose up
источник
Для меня я начал модернизацию Docker и отменил на полпути. Я не заметил, что Docker не работал (если это было, есть значок в верхней навигационной панели моего Macbook, оставшийся заряд батареи, время и т. Д.). Как только я запустил его и закончил обновление,
docker-compose up
снова заработало!источник
В моей настройке есть два случая этой ошибки:
__pycache__
файлы, созданные пользователем root после того, как я запустил интеграционные тесты внутри контейнера, недоступны для docker (говорит о первоначальной проблеме) и docker-compose (неоднозначно говорит о хосте docker);microk8s
заблокировал мой порт, пока я не остановил его.источник
Попробуйте запустить
dockerd
или,sudo dockerd
если необходимо, сначала запустить демон. Если начатьdockerd
сsudo
вы можете работатьdocker-compose up
сsudo
также. в противном случае это нормально.Рабочее решение от https://github.com/docker/compose/issues/4181
источник
Выход из системы затем снова помог мне. В моем случае это была новая установка, я создал нового пользователя, новую группу, затем добавил пользователя в группу Docker.
выход выход
затем снова по ssh на сервер
источник
Следующее сработало для меня, я не уверен, какая часть сделала трюк:
источник