Ports portBindings = new Ports(); for (var srcPort : createContainer.getPortMapping().keySet()) { var bindPort = createContainer.getPortMapping().get(srcPort); portBindings.bind(ExposedPort.tcp(srcPort), Ports.Binding.bindPort(bindPort)); } hostConfig.withPortBindings(portBindings); log.info("portBindings:{}", portBindings); } var cmd = this.client.createContainerCmd(createContainer.getImageName()) .withName(createContainer.getName()) .withTty(true) // .withExposedPorts(new ExposedPort(createContainer.getNoVncPort())) .withHostConfig(hostConfig);
时间: 2024-04-25 16:25:49 浏览: 65
这段代码是用来创建 Docker 容器的,其中会绑定容器内的端口和宿主机(即当前运行 Docker 的机器)的端口。具体来说,它会遍历一个端口映射的 Map,将容器内的某个端口(srcPort)映射到宿主机上的某个端口(bindPort),并将这个绑定关系存储在一个 Ports 对象中。然后将这个 Ports 对象作为参数传递给 HostConfig 对象,最终通过 Docker 客户端创建一个新的容器。注意,这个容器镜像的名称和容器的名称、是否分配 tty 等参数也会被设置。
阅读全文