2017-01-09 4 views
0

У меня есть два докерных контейнера в IBM Bluemix. Один из них - MQTT и другой php-python.Inter docker communication (mqtt и python)

Приложение PHP выполняет скрипт python, который должен подключаться к контейнеру докеров MQTT и подписаться на тему.

Однако доклер php-python не может подключиться. Он также не может выполнить пинг в контейнере докеров MQTT.

Контейнер MQTT работает идеально, поскольку я могу подключиться к нему с моей локальной машины.

Я попытался связывающие два контейнера с помощью следующей команды:

cf ic run -p 443 -p 80 --name connector --link moscacontainer:source 
registry.ng.bluemix.net/fortspace/php-mqtt 

Я выставил порты 1883 и 80 для контейнера MQTT.

Я использовал следующую ссылку в качестве справки:

https://github.com/dceejay/nrdock/blob/master/README.md#linking-containers 

Может кто-то руководство по этому вопросу?

EDIT: Выход для КФ IC инспектировать

[ 
    { 
     "BluemixApp": null, 
     "BluemixServices": null, 
     "Config": { 
      "AttachStderr": false, 
      "AttachStdin": false, 
      "AttachStdout": false, 
      "Cmd": [], 
      "Dns": "", 
      "Env": [ 
       "logging_password=", 
       "space_id=f874124c-cea6-460e-9bf2-b633eeeefcdf", 
       "logstash_target=logmet.opvis.bluemix.net:9091", 
       "metrics_target=logmet.opvis.bluemix.net:9095" 
      ], 
      "Hostname": "instance-0018c601", 
      "Image": "registry.ng.bluemix.net/fortspace/php-mqtt:latest", 
      "ImageArchitecture": "amd64", 
      "Labels": {}, 
      "Memory": 256, 
      "MemorySwap": "", 
      "OpenStdin": true, 
      "PortSpecs": "", 
      "StdinOnce": false, 
      "Tty": true, 
      "User": "", 
      "VCPU": 1, 
      "VolumesFrom": "", 
      "WorkingDir": "" 
     }, 
     "ContainerState": "Running", 
     "Created": "2017-01-11T06:21:38.000000000Z", 
     "Group": {}, 
     "HostConfig": { 
      "Binds": [], 
      "CapAdd": [], 
      "CapDrop": [], 
      "ContainerIDFile": "", 
      "Links": [ 
       "moscacontainer:source" 
      ], 
      "LogConfig": { 
       "Config": {}, 
       "Type": "json-file" 
      }, 
      "LxcConf": [], 
      "PortBindings": { 
       "443/tcp": [ 
        { 
         "HostPort": "443" 
        } 
       ], 
       "80/tcp": [ 
        { 
         "HostPort": "80" 
        } 
       ] 
      }, 
      "Privileged": false, 
      "PublishAllPorts": false 
     }, 
     "HostId": "46f8e5e8739f205e67ec852485095e953f079ff5c8f95b9e7c16f331", 
     "Human_id": "connector", 
     "Id": "4920a824-66bf-49bd-be71-549d0adeeffc", 
     "Image": "sha256:080893a1e47927b2fdf3f24a8b0b803fab035c236551e32df9527654c8af698c", 
     "Mounts": [], 
     "Name": "connector", 
     "NetworkSettings": { 
      "Bridge": "", 
      "Gateway": "", 
      "IPAddress": "172.29.0.53", 
      "IPPrefixLen": 0, 
      "MacAddress": "fa:16:3e:3a:2e:04", 
      "Networks": { 
       "default": { 
        "Aliases": null, 
        "EndpointID": "4920a824-66bf-49bd-be71-549d0adeeffc", 
        "Gateway": "172.29.0.1", 
        "GlobalIPv6Address": "", 
        "GlobalIPv6PrefixLen": 0, 
        "IPAMConfig": null, 
        "IPAddress": "172.29.0.53", 
        "IPPrefixLen": 16, 
        "IPv6Gateway": "", 
        "Links": null, 
        "MacAddress": "fa:16:3e:3a:2e:04", 
        "NetworkID": "bd84d27c-8909-4dcc-a9cf-7dca5453f55c" 
       } 
      }, 
      "PortMapping": null, 
      "Ports": { 
       "443/tcp": [ 
        { 
         "HostIp": "169.46.22.55", 
         "HostPort": "443" 
        } 
       ], 
       "80/tcp": [ 
        { 
         "HostIp": "169.46.22.55", 
         "HostPort": "80" 
        } 
       ] 
      }, 
      "PublicIpAddress": "169.46.22.55" 
     }, 
     "Path": "date", 
     "ResolvConfPath": "/etc/resolv.conf", 
     "State": { 
      "Error": "", 
      "ExitCode": 0, 
      "FinishedAt": "0001-01-01T00:00:00Z", 
      "Ghost": "", 
      "Pid": 1, 
      "Running": true, 
      "StartedAt": "2017-01-11T06:22:54.000000000Z", 
      "Status": "Running" 
     }, 
     "Volumes": {}, 
     "VolumesRW": {} 
    } 
] 

ответ

0

Вы можете просмотреть информацию на этой странице: https://console.ng.bluemix.net/docs/containers/container_linking.html

Я боюсь, что --link неверен, и вы, возможно, для обеспечения правильности псевдонима и имени.

Этот вывод команды должен помочь вам: сравни IC инспектировать recipient_container_name

+0

Спасибо за ответ. Я делаю то, что упоминается в ссылке. Что не так с моей реализацией --link. Имя исходного контейнера - это moscacontainer, и я использую то же имя. Псевдоним, я понимаю, может быть все, что я хочу. Я добавил результат проверки cf ic. Я пропустил какой-то трюк здесь? – Sid411

+0

Я не вижу ни одной из деталей контейнера источника в среде. но я до сих пор не понял, что является ошибкой в ​​переменной -link с моего конца. – Sid411