1

Docker (Spring Boot) アプリケーションで、Docker コマンドを実行したいと考えています。docker-spotify-api (クライアント) を使用します。

さまざまな接続エラーが発生します。docker-compose.yml の一部としてアプリケーションを起動します。

これは、EC2 AWS VPS でこれまでに試したことです。

docker = DefaultDockerClient.builder()
  .uri(URI.create("tcp://localhost:2376"))
  .build();
=> TCP protocol not supported. 

docker = DefaultDockerClient.builder()
  .uri(URI.create("tcp://localhost:2375"))
  .build();
=> TCP protocol not supported. 

docker = new DefaultDockerClient("unix:///var/run/docker.sock");
==> No such file

docker = DefaultDockerClient.builder()
          .uri("unix:///var/run/docker.sock")
          .build();
==> No such file

docker = DefaultDockerClient.builder()
            .uri(URI.create("http://localhost:2375")).build();
or
docker = DefaultDockerClient.builder()
            .uri(URI.create("http://localhost:2376")).build();
or 
docker = DefaultDockerClient.builder()
              .uri(URI.create("https://localhost:2376"))
              .build();
==> Connect to localhost:2376 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

EC2 VPS での私の環境は次のとおりです。

$ ls -l /var/run
lrwxrwxrwx 1 root root 6 Nov 14 07:23 /var/run -> ../run

$ groups ec2-user                              
ec2-user : ec2-user adm wheel systemd-journal docker   

$ ls -l /run/docker.sock                       
srw-rw---- 1 root docker 0 Feb 14 17:16 /run/docker.sock

echo $DOCKER_HOST $DOCKER_CERT_PATH
(empty)
4

4 に答える 4

0

DOCKER_HOST および DOCKER_CERT_PATH 環境変数の値は何ですか。

docker-client が HTTP Remote API を使用してローカルの Docker デーモンと通信するため、以下を試してください。

    final DockerClient docker = DefaultDockerClient.builder()
      .uri(URI.create("https://localhost:2376"))
      .build();

また、docker.sock の権限がアプリに表示されるかどうかを確認し、上記のスクリーンショットから docker.sock が空に見えるように、docker サービスが実行されているかどうかを確認してください。ただし、サービスが実行されている場合は、pid が含まれている必要があります。

于 2019-05-01T17:35:37.767 に答える
0

理解するのに少し時間がかかりましたが、ローカルでhttps://hub.docker.com/r/alpine/socat/を実行していて、Docker デーモンに接続したくてもできませんでした (同じエラー)。次に、それは私を襲った:そのWebページのソリューションは、127.0.0.1バインド先のIPアドレスとして使用します. 代わりに、そのコンテナーを で開始し、コンテナー0.0.0.0内で次のことを行うことができますDockerClient dockerClient = new DefaultDockerClient("http://192.168.1.215:2376");(もちろん、独自の IP アドレスを使用します)。

これは私にとってはうまくいきました。

于 2020-08-04T09:22:30.103 に答える