Docker Java API创建容器,端口映射

摘要:
  1. PortBinding portBinding = PortBinding.parse(containerInfo.getPublicPort() + "
  2. " + containerInfo.getPrivatePort())
  3. .withExposedPorts(ExposedPort.parse(containerInfo.getPrivatePort() + "/tcp"))
  4. <version>3.2.2</version>
  5. 使用Docker Java API 创建容器的时候始终无法将 host 和 container 的端口相映射成功

关键词: Java端口映射APIdocker

Docker Java API创建容器,端口映射

使用Docker Java API 操作Docker (Docker Java API)
Maven 中引入:

<dependency>
    <groupId>com.github.docker-java</groupId>
    <artifactId>docker-java</artifactId>
    <version>3.2.2</version>
</dependency>

<dependency>
    <groupId>com.github.docker-java</groupId>
    <artifactId>docker-java-transport-httpclient5</artifactId>
    <version>3.2.2</version>
</dependency>

使用Docker Java API 创建容器的时候始终无法将 hostcontainer 的端口相映射成功。

查找了很多资料,尝试了很多次之后发现如下方法是可行的:

PortBinding portBinding = PortBinding.parse(containerInfo.getPublicPort() + ":" + containerInfo.getPrivatePort());
HostConfig hostConfig = HostConfig.newHostConfig()
        .withPortBindings(portBinding);
CreateContainerResponse response = dockerClient.createContainerCmd(containerInfo.getImage())
        .withName(containerInfo.getName())
        .withHostConfig(hostConfig)
        .withExposedPorts(ExposedPort.parse(containerInfo.getPrivatePort() + "/tcp"))
        .exec();

查看Docker容器

成功将主机的 8016 端口(容器对外端口)跟容器的 80 端口(容器内部端口)映射成功。

相关阅读

本站所有帖子由该帖子作者发表,版权属于原作者,如有侵权请联系删除。


Copyright © 2020–2021. 编程技术网(www.editcode.net) ICP主体备案号:湘ICP备2021008236号