写一段java docker client_Java 操作 Docker 使用 java 执行 Docker 内部命令的代码
时间: 2024-05-14 10:13:11 浏览: 110
可以的,以下是一段Java操作Docker的代码:
```
import com.github.dockerjava.api.DockerClient;
import com.github.dockerjava.api.command.CreateContainerResponse;
import com.github.dockerjava.api.model.ExposedPort;
import com.github.dockerjava.api.model.HostConfig;
import com.github.dockerjava.api.model.PortBinding;
import com.github.dockerjava.core.DockerClientBuilder;
import com.github.dockerjava.core.command.ExecStartResultCallback;
public class DockerClientJavaDemo {
public static void main(String[] args) {
DockerClient dockerClient = DockerClientBuilder.getInstance().build();
// 创建一个容器
CreateContainerResponse container = dockerClient.createContainerCmd("nginx").exec();
// 启动容器
dockerClient.startContainerCmd(container.getId()).exec();
// 获取容器的IP地址
String containerIpAddress = dockerClient.inspectContainerCmd(container.getId()).exec().getNetworkSettings().getIpAddress();
// 在容器内执行命令
String[] command = {"sh", "-c", "echo Hello, Docker!"};
HostConfig hostConfig = new HostConfig().withPortBindings(new PortBinding(new ExposedPort(80), new Binding("0.0.0.0", "8080")));
dockerClient.execCreateCmd(container.getId()).withCmd(command).withAttachStdout(true).withAttachStderr(true).withHostConfig(hostConfig).exec(new ExecStartResultCallback()).awaitCompletion();
// 停止容器
dockerClient.stopContainerCmd(container.getId()).exec();
// 删除容器
dockerClient.removeContainerCmd(container.getId()).exec();
}
}
```
这段代码演示了如何使用Java操作Docker,包括创建容器、启动容器、在容器内执行命令、停止容器和删除容器。需要注意的是,需要在本机上安装并运行Docker,才能正常执行这段代码。
阅读全文