Pertanyaan Docker + Marathon: bagaimana melakukan pemetaan port?


Saya mencoba meluncurkan rstudio pada infrastruktur saya.

Bila saya lakukan :

sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio

Kemudian saya memiliki rstudio berjalan baik di server saya. Tapi aku punya mesos dan maraton, dan ingin membuat aplikasi Maraton dari perintah buruh pelabuhan ini.

Saya tidak dapat menemukan cara memetakan port dengan benar.

Saya mencoba :

{
  "type": "DOCKER",
  "volumes": [],
  "docker": {
    "image": "192.168.0.38:5000/rocker/rstudio",
    "network": "HOST",
    "privileged": true,
    "parameters": [
      {
        "key": "p",
        "value": "8787:8787"
      }
    ],
    "forcePullImage": true
  }
}

Melompat bahwa saya akan bekerja, tetapi tidak pernah dimulai.

Dan saya mencoba:

{
  "type": "DOCKER",
  "volumes": [],
  "docker": {
    "image": "192.168.0.38:5000/rocker/rstudio",
    "network": "HOST",
    "portMappings": [
      {
        "containerPort": 8787,
        "hostPort": 8787,
        "servicePort": 10003,
        "protocol": "tcp"
      }
    ],
    "privileged": true,
    "parameters": [],
    "forcePullImage": true
  }
}

Yang mana tidak lebih baik.

Json mana yang akan Anda sarankan saya untuk mengubah perintah buruh pelabuhan ini:

sudo docker run -d -p 8787:8787 192.168.0.38:5000/rocker/rstudio

??


4
2018-01-10 16:17


asal


Jawaban:


Pemetaan port (seperti halnya Docker) hanya relevan untuk BRIDGE mode jaringan, lihat juga Doktor maraton. Dalam kasus Anda, hal-hal berikut seharusnya berfungsi:

...
"network": "BRIDGE",
"portMappings": [
  {
    "containerPort": 8787,
    "hostPort": 8787
  }
...

7
2018-01-10 16:28