Не удается создать объект доступа к докеру
Я хотел бы провести весенний интеграционный тест с плагином fabric8, но при попытке запустить тест я получил следующую ошибку:
Не удается создать объект доступа к докеру
У меня есть Ubuntu, и я думаю, что у меня есть хорошо сконфигурированные докеры, у меня не было проблем с dockerfiles или dockercompose, так что это может быть проблема с разрешениями или я что-то забыл.
Я прошёл ниже моей конфигурации fabric8, здесь есть образ mysql и maven-failsafe-plugin для тестирования интеграции.
<!--maven plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
<configuration>
<environmentVariables>
<it-database.port>${it-database.port}</it-database.port>
</environmentVariables>
</configuration>
</plugin>
<!--fabric8 plugin -->
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.18.1</version>
<configuration>
<!--<dockerHost>unix:///var/run/docker.sock</dockerHost>-->
<dockerHost>tcp://0.0.0.0:2375</dockerHost>
</configuration>
<executions>
<execution>
<id>prepare-it-database</id>
<phase>pre-integration-test</phase>
<goals>
<goal>start</goal>
</goals>
<configuration>
<images>
<image>
<name>mysql:5.7</name>
<alias>it-database</alias>
<run>
<ports>
<port>it-database.port:5432</port>
</ports>
<wait>
<log>database system is ready to accept connections</log>
<time>20000</time>
</wait>
</run>
</image>
</images>
</configuration>
</execution>
<execution>
<id>remove-it-database</id>
<phase>post-integration-test</phase>
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
4 ответа
Немного поздно, но попробуйте перезапустить Docker. У меня была такая же проблема, и перезапуск докера решил проблему.
Рабочий стол Docker в Windows 10
Скорее всего, конфигурация вашего рабочего стола требует прав суперпользователя для запуска команд Docker. Вы должны либо запустить свою сборку maven с помощью «sudo», либо настроить среду докера, чтобы не нуждаться в таких привилегиях.
Вы уверены, что демон Docker прослушивает порт 2375? Вы можете попробовать localhost или 127.0.0.1 вместо 0.0.0.0 в pom.xml.
Не могли бы вы напечатать
env | grep DOCKER
Это также может быть плохой переменной среды
Если вы используете рабочий стол Docker в Windows 10, то нам не нужен хост Docker, поскольку он требуется только при использовании Docker Toolbox (Windows) для более старой версии Windows, и в этом случае мы можем использовать IP-адрес docker-machine, чтобы узнать хост Docker...