我正在尝试用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
答案 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);