Java で Docker のディレクトリをマウントする方法
JavaのDockerクライアントAPIを使用して、dockerのディレクトリのマウントが可能です。以下に、JavaのDockerクライアントAPI使用して、dockerのディレクトリのマウントを行うサンプルコードを示します。
- まず、pom.xmlファイルにdocker-javaの依存関係を追加していることを確認します。
<dependency>
<groupId>com.github.docker-java</groupId>
<artifactId>docker-java</artifactId>
<version>3.2.10</version>
</dependency>
- Dockerクライアントオブジェクトを作成します。
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.DockerClientConfig;
DockerClientConfig config = DockerClientConfig.createDefaultConfigBuilder().build();
DockerClient dockerClient = DockerClientBuilder.getInstance(config).build();
- createContainerコマンド
- bindsと
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.model.Bind;
CreateContainerResponse container = dockerClient.createContainerCmd("image_name")
.withBinds(Bind.parse("/host/dir:/container/dir"))
.exec();
ホストマシンの/host/dirはホストマシンのディレクトリパス、/container/dirはコンテナ内のディレクトリパスです。この方法により、ホストマシンの/host/dirディレクトリをコンテナの/container/dirディレクトリにマウントできます。
- コンテナを開始する。
dockerClient.startContainerCmd(container.getId()).exec();
上記のコードを使用すると、JavaでDockerディレクトリをマウントできます。ただし、image_name、/host/dir、/container/dirなど、状況に応じてパラメーターを置き換える必要があります。