Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

почему мой Docker клиент не коннектится к докер хосту

docker
infrastructure
maven
java
Теги: #<Tag:0x00007fedb77a76f8> #<Tag:0x00007fedb77a7590> #<Tag:0x00007fedb77a73d8> #<Tag:0x00007fedb77a7180>

(Inna Gabdullina) #1

Подскажите пожалуйста тестеровщику. Мои тесты должны рестартовать докер контейнер в каждом тесте. Нашла мавен депенданси.

<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<version>3.0.13</version>
</dependency>
public DockerClient dockerClient; 
private DockerClientConfig config; 
private DockerCmdExecFactory dockerCmdExecFactory;
public Docker(){
config = DefaultDockerClientConfig.createDefaultConfigBuilder()
.withDockerHost("tcp://192.168.124.203:2376")
.withDockerTlsVerify(false)
.withDockerCertPath("/home/user/.docker")
.withRegistryUsername(registryUser)
.withRegistryPassword(registryPass)
.withRegistryEmail(registryMail)
.withRegistryUrl(registryUrl)
.build();

dockerCmdExecFactory = new JerseyDockerCmdExecFactory()
.withReadTimeout(1000)
.withConnectTimeout(1000)
.withMaxTotalConnections(100)
.withMaxPerRouteConnections(10);
dockerClient = DockerClientBuilder.getInstance(config)
.withDockerCmdExecFactory(dockerCmdExecFactory)
.build();
}

Получаю:

javax.ws.rs.ProcessingException: org.apache.http.conn.ConnectTimeoutException: Connect to 192.168.124.203:2376 [/192.168.124.203] failed: connect timed out
at org.glassfish.jersey.apache.connector.ApacheConnector.apply(ApacheConnector.java:481)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:252)
at org.glassfish.jersey.client.JerseyInvocation$3.call(JerseyInvocation.java:724)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:720)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:430)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:321)
at com.github.dockerjava.jaxrs.ListContainersCmdExec.execute(ListContainersCmdExec.java:47)
at com.github.dockerjava.jaxrs.ListContainersCmdExec.execute(ListContainersCmdExec.java:19)
at com.github.dockerjava.jaxrs.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:23)
at com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:35)
at com.genesyslab.functional.tests.gms.helper.Docker.getContainerIdByImage(Docker.java:80)
at com.genesyslab.functional.tests.gms.api.TestClass.<init>(TestClass.java:42)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

Порт для удаленного доступа :

[root@tmpl context-services]# ps -axl | grep -i docker
0 0 13827 13434 20 0 112648 976 pipe_w S+ pts/0 0:00 grep --color=auto -i docker
4 0 19061 1 20 0 850924 24744 wait Ssl ? 1052:27 /usr/bin/dockerd --tls=false -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2376 --insecure-registry=sdocker-registry.genhtcc.com

Против этого енв REST запросы проходят на порт контейнера с моей машины.
Девелоперы сказали креденшиалы не нужны ( .withRegistryUsername(registryUser)

.withRegistryPassword(registryPass)
.withRegistryEmail(registryMail)
.withRegistryUrl(registryUrl))

Пробовала без них. Все равно та же ошибка.:disappointed_relieved:


(Vitalii Grygoruk) #2

Вы для начала попробуйте телнетом можете ли вы соединиться на указанный порт

telnet 192.168.124.203 2376

(Inna Gabdullina) #3

telnet отключен админами

Предложили workaround: написать sh скрипты с рестартом енвайрмента, положить их локально и к ним обращаться
Спасибо Виталий