Java操作Docker的Api接口工具类
public class DockerClientService {
private static final Logger LOGGER = LoggerFactory.getLogger(DockerClientService.class); /** * 连接docker服务器 * * @return */ public DockerClient connectDocker(String serverUrl) { DockerClient dockerClient = DockerClientBuilder.getInstance(serverUrl).build(); Info info = dockerClient.infoCmd().exec(); LOGGER.debug("================= Docker环境信息:================= \n{}", info); return dockerClient; } /** * 创建容器 * * @param client * @param containerName * @param imageName * @param exposedTcpPort * @param bindTcpPort * @return */ public CreateContainerResponse createContainer(DockerClient client, String containerName, String imageName, int exposedTcpPort, int bindTcpPort) { ExposedPort exposedPort = ExposedPort.tcp(exposedTcpPort); Ports portBindings = new Ports(); portBindings.bind(exposedPort, Ports.Binding.bindPort(bindTcpPort)); CreateContainerResponse container = client.createContainerCmd(imageName) .withName(containerName) .withHostConfig(HostConfig.newHostConfig().withPortBindings(portBindings)) .withExposedPorts(exposedPort).exec(); return container; } /** * 创建容器 * * @param client * @param containerName * @param imageName * @return */ public CreateContainerResponse createContainer(DockerClient client, String containerName, String imageName) { CreateContainerResponse container = client.createContainerCmd(imageName) .withName(containerName).exec(); return container; } /** * 启动容器 * * @param client * @param containerId */ public void startContainer(DockerClient client, String containerId) { client.startContainerCmd(containerId).exec(); } /** * 停止容器 * * @param client * @param containerId */ public void stopContainer(DockerClient client, String containerId) { client.stopContainerCmd(containerId).exec(); } /** * 重启容器 * * @param client * @param containerId */ public void restartContainer(DockerClient client, String containerId) { client.restartContainerCmd(containerId).exec(); } /** * 删除容器 * * @param client * @param containerId */ public void removeContainer(DockerClient client, String containerId) { client.removeContainerCmd(containerId).exec(); }
}