Включить 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