网络配置docker PHP API

时间:2017-01-05 13:39:20

标签: php api docker

我正在尝试用PHP编写的docker API创建一个容器(https://github.com/docker-php/docker-php

我无法想出使用类配置网络的方法,如果我删除行,容器创建正常但没有端口配置:

    // Debug
    $name = "service_1";
    $port = 7777;


    /* Container configuration */
    $params = ["name"=>$name];

    $portConfig = new \Docker\API\Model\Port;
    $portConfig->setPrivatePort($port);
    $portConfig->setPublicPort($port);
    $portConfig->setType("udp");

    $networkConfig = new \Docker\API\Model\NetworkConfig();
    $networkConfig->setIPAddress("0.0.0.0");
    $networkConfig->setPorts($portConfig);

    $containerConfig = new \Docker\API\Model\ContainerConfig();
    $containerConfig->setImage("pyrax/samp:latest");
    $containerConfig->setNetworkSettings($networkConfig);

    /* Creation request */
    $request = $this->getDocker()->getContainerManager()->create($containerConfig, $params);

“setNetworkSettings”需要参数中的NetworkingConfig对象而不是NetworkConfig(我在源代码中搜索过),然后我找不到放置网络配置的地方..

如果有人可以提供帮助:D

1 个答案:

答案 0 :(得分:0)

    $hostConfig = new HostConfig();
    $portMap = new \ArrayObject();
    $portBinding = new PortBinding();

    $portBinding->setHostPort('8080');

    $portMap['80/tcp'] = [$portBinding];
    $hostConfig->setPortBindings($portMap);

    $config = new ContainerConfig();
    $config->setHostConfig(hostConfig);