2016-08-04 5 views
0

Docker версия - v1.12 ОС - Ubuntu 14.04.4 LTS-режим Кластеризация - SwarmDocker контейнера по умолчанию при запуске контейнера

Создан оверлей сеть: $ docker -H tcp://0.0.0.0:2375 network create --driver overlay --subnet=10.0.9.0/24 my-net

Создание контейнер: [Сообщение] http://localhost:2375/container/create?name={id}

{ 
"Env": [ 
     "env1=val1" 
    ], 
    "Cmd": [ 
     "/Run.sh", 
     "launch 
    ], 
    "Image": "<image>", 
    "Volumes": { 
     "/tmp" : {} 
    }, 
    "HostConfig": { 
    "NetworkMode": "my-net" 
    } 
} 

Ответ $docker inspect:

"HostConfig": { 
    "Binds": null, 
    "ContainerIDFile": "", 
    "LogConfig": { 
     "Type": "json-file", 
     "Config": {} 
    }, 
    "NetworkMode": "my-net", 
    "PortBindings": null, 
    "RestartPolicy": { 
     "Name": "", 
     "MaximumRetryCount": 0 
    }, 
    "AutoRemove": false, 
    "VolumeDriver": "", 
    "VolumesFrom": null, 
} 

Это создает контейнер с networkMode как my-net. Но когда я запускаю , контейнер с использованием остального API [POST] http://localhost:2375/containers/{id}/start networkMode изменяется на default.

Ответ $docker inspect:

"HostConfig": { 
    "Binds": null, 
    "ContainerIDFile": "", 
    "LogConfig": { 
     "Type": "json-file", 
     "Config": {} 
    }, 
    "NetworkMode": "default", 
    "PortBindings": null, 
    "RestartPolicy": { 
     "Name": "", 
     "MaximumRetryCount": 0 
    }, 
    "AutoRemove": false, 
    "VolumeDriver": "", 
    "VolumesFrom": null, 
} 

ответ

0

Проблема была связана с изменением API-интерфейса докеров, чтобы запустить контейнер. Этот коммит сообщает о передаваемой структуре полезной нагрузки. Все, что мне нужно, чтобы изменить это полезная нагрузка:

[POST] http://localhost:2375/containers/{id}/start

Payload:

{ 
    "NetworkMode": "my-net" 
} 

Все свойства hostConfig докер контейнер идет в полезной нагрузке. Если оставить пустым, тогда все свойства будут сброшены до значения по умолчанию. Эта спецификация API должна быть документирована в документах swarm API, чтобы избежать путаницы.

Смежные вопросы