2016-05-30 7 views
0

dockerのコンテナにpublicPortとprivatePortを設定できません。 私はjavaの https://github.com/spotify/docker-clientdocker-client for javaのコンテナのポートを設定します

するためのJavaライブラリdocker-clientとのドッキングウィンドウコンテナを作成し、私はすでにローカル「mobillogix /セレン・クロムを」ドッキングウィンドウの画像を作成していました。

DockerClient docker = DefaultDockerClient.fromEnv()。build();ポート

4444/TCP、5900/TCP

CONTAINER ID  IMAGE      COMMAND     CREATED    STATUS    PORTS    NAMES 
6beec961dfcf  mobillogix/selenium-chrome "/opt/bin/entry_point" 4 seconds ago  Up 2 seconds  4444/tcp, 5900/tcp elegant_kare 

が、私はポートとコンテナを作成したい:

// Bind container ports to host ports 
    final String[] ports = {"44444", "59004"}; 
    final String[] ports1 = {"4444", "5900"}; 

    final Map<String, List<PortBinding>> portBindings = new HashMap<String, List<PortBinding>>(); 
    for (String port : ports) { 
     List<PortBinding> hostPorts = new ArrayList<PortBinding>(); 
     hostPorts.add(PortBinding.of("0.0.0.0", port)); 
     portBindings.put(port, hostPorts); 
    } 


    final HostConfig hostConfig = HostConfig.builder().portBindings(portBindings).build(); 

    final ContainerConfig containerConfig = ContainerConfig.builder() 
      .hostConfig(hostConfig) 
      .image("mobillogix/selenium-chrome").exposedPorts(ports1) 
      .build(); 

    final ContainerCreation creation = docker.createContainer(containerConfig); 
    final String id = creation.id(); 

    // Start container 
    docker.startContainer(id); 

    final List<Container> containers = docker.listContainers(); 

    webDriver(); 

    // Kill container 
    docker.killContainer(id); 

    // Remove container 
    docker.removeContainer(id); 

このコードは、コンテナを作成

0.0.0.0:44444->4444/tcp、0.0.0.0:59004->5900/tc

答えて

2

documentationによると、ここに右の構文は次のようになります。

hostPorts.add(PortBinding.of("0.0.0.0", 44444)); 
portBindings.put(4444, hostPorts); 

hostPorts.add(PortBinding.of("0.0.0.0", 59004)); 
portBindings.put(5900, hostPorts); 

何あなたのループでこれを実行する:

hostPorts.add(PortBinding.of("0.0.0.0", 44444)); 
portBindings.put(44444, hostPorts); 

hostPorts.add(PortBinding.of("0.0.0.0", 59004)); 
portBindings.put(50004, hostPorts); 
関連する問題