Docker SDK для Golang не может подключиться к демону внутри оверлейной сети
У меня есть рой докеров и контейнер внутри оверлейной сети в этом рое. Контейнер имеет приложение, написанное на golang, которое взаимодействует с Docker API путем создания контейнера и его запуска. Когда я запускаю мое приложение golang на хост-компьютере, все работает отлично, и он создает и запускает контейнер без проблем. Однако, когда я помещаю приложение в контейнер и запускаю его в своей оверлейной сети, оно больше не может получить доступ к API.
Я предполагаю, что это как-то связано с сетью, но идея моего проекта заключается в том, что есть несколько сервисов, каждый со своими сетями, которые могут создавать, запускать и удалять контейнеры, которые они считают нужными. НЕ запускать SDK в приложении за пределами оверлейных сетей, к сожалению, пока нельзя.
Ошибка: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
1 ответ
Ваше приложение пытается получить доступ к сокету Docker, но это не доступно по умолчанию в контейнере.
Вы можете смонтировать его как том с хоста:-v /var/run/docker.sock:/var/run/docker.sock