通过Docker的API实现端口绑定的示例
@Test public void startContainerWithPortBindings() throws DockerException { int baseport = 20_000 + (getFactoryType().ordinal() * 1000); ExposedPort tcp22 = ExposedPort.tcp(22); ExposedPort tcp23 = ExposedPort.tcp(23); Ports portBindings = new Ports(); portBindings.bind(tcp22, Ports.Binding.bindPort(baseport + 22)); portBindings.bind(tcp23, Ports.Binding.bindPort(baseport + 23)); portBindings.bind(tcp23, Ports.Binding.bindPort(baseport + 24)); CreateContainerResponse container = dockerRule.getClient().createContainerCmd("busybox").withCmd("true") .withExposedPorts(tcp22, tcp23) .withHostConfig(HostConfig.newHostConfig() .withPortBindings(portBindings)).exec(); LOG.info("Created container {}", container.toString());
}