Включить Docker Remote API - raspberry pi / raspbian

Моя отправная точка:

поэтому я редактирую /etc/init/docker.conf и обновите 2 вхождения переменной DOCKER_OPTS, чтобы:

DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'

Затем простой тест для перечисления образов Docker не выполняется:

$ service docker restart
$ curl -X GET http://10.143.0.218:4243/images/json
curl: (7) Failed to connect to 10.143.0.218 port 4243: Connection refused

Версия Docker:

$ sudo docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 19:06:36 2016
OS/Arch:      linux/arm

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 19:06:36 2016
 OS/Arch:      linux/arm

2 ответа

Решение

Не проверял это, но если это Джесси, то он использует systemd по умолчанию в качестве системы инициализации iirc, и это имеет значение для того, как демон (dockerd) настроен и запущен.

Итак, вы редактируете /etc/init/docker.conf файл, но я не думаю, что это читается / используется.

Прочитайте эту статью о различных процедурах запуска в каждой системе инициализации в Docker, и это для конкретной конфигурации systemd.

Решение приходит из комментариев на этой странице: http://www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html

[18.08.2016 в 6:00] Оливер Вайс говорит: Спасибо, это направило меня в правильном направлении. Однако, начиная с Ubuntu 16.04 с демоном systemd docker, /etc/default/docker больше не эффективен. Вместо этого вам нужно создать системный файл dropin.

Я поместил такой файл под: /etc/systemd/system/docker.service.d/remote-api.conf

С содержанием:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2376 -H unix:///var/run/docker.sock

(Да, двойной ExecStart необходим)

После этого запустите:

sudo systemctl daemon-reload // reloading daemon definitions
sudo systemctl restart docker
Другие вопросы по тегам