You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am running podman, which handles connections over unix socket on unix:///run/user/1000/podman/podman.sock. When I create a new instance of a DockerClientImpl, I provide an URI for this socket as a dockerHost parameter for both DefaultDockerClientConfig and ApacheDockerHttpClient(or ZerodepDockerHttpClient)[1]. For some reason, both http clients ignore this parameter and try to connect to "unix://localhost:2375" instead[2], where podman is not serving anything by default (since this is not recommended as not safe[3]).
This behaviour breaks both promise to work with podman while its "compatibility level works correctly" [3] and the description of supported transports[4], where both ZeroDep and ApacheHttp are described as having "Unix sockets support".
[1]
DefaultDockerClientConfig dockerClientConfig = DefaultDockerClientConfig.createDefaultConfigBuilder()
.build();
URI dockerHost = dockerClientConfig.getDockerHost();
System.out.println("Docker is on " + dockerHost);
ApacheDockerHttpClient dockerHttpClient = new ApacheDockerHttpClient.Builder()
.dockerHost(dockerHost)
.sslConfig(dockerClientConfig.getSSLConfig()).build();
dockerClientInstance = DockerClientImpl.getInstance(dockerClientConfig, dockerHttpClient);
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I am running podman, which handles connections over unix socket on
unix:///run/user/1000/podman/podman.sock
. When I create a new instance of aDockerClientImpl
, I provide an URI for this socket as adockerHost
parameter for bothDefaultDockerClientConfig
andApacheDockerHttpClient
(orZerodepDockerHttpClient
)[1]. For some reason, both http clients ignore this parameter and try to connect to "unix://localhost:2375" instead[2], where podman is not serving anything by default (since this is not recommended as not safe[3]).This behaviour breaks both promise to work with podman while its "compatibility level works correctly" [3] and the description of supported transports[4], where both ZeroDep and ApacheHttp are described as having "Unix sockets support".
[1]
[2] https://github.com/docker-java/docker-java/blob/main/docker-java-transport-httpclient5/src/main/java/com/github/dockerjava/httpclient5/ApacheDockerHttpClientImpl.java#L70
[3] https://proofnet.de/publikationen/podman_tcp_api.html
[4] #1423
[5] https://github.com/docker-java/docker-java/blob/main/docs/transports.md
The text was updated successfully, but these errors were encountered: