В настоящее время я работаю над командным проектом, использующим Docker с Apache Mesos / Marathon. Чтобы развернуть контейнеры докеров MySQL на Mesos / Marathon, нам нужно создать файл JSON с сопоставлением портов. Я искал повсюду в Интернете и просто не могу найти образец файла JSON для поиска сопоставления портов. Кто-нибудь делал это раньше?
Развертывание контейнеров Docker с сопоставлением портов на Mesos / Marathon
comment
Какая из четырех упомянутых вами огромных систем будет читать JSON?
- person Bryan   schedule 29.01.2015
comment
Какие четыре системы? Вы имеете в виду систему инициализации (Marathon), cron (Chronos), обнаружение служб (DNS), хранилище (HDFS)?
- person Hans   schedule 30.01.2015
comment
Вы упомянули Docker, Mesos, Marathon и MySQL в своем вопросе. Все они могут выполнять сопоставление портов и, возможно, потребуется читать JSON. Пожалуйста, сузьте свой вопрос.
- person Bryan   schedule 30.01.2015
Ответы (1)
Вот несколько примеров Marathon JSON для использования режима мостовой сети Docker:
{
"id": "bridged-webapp",
"cmd": "python3 -m http.server 8080",
"cpus": 0.5,
"mem": 64.0,
"instances": 2,
"container": {
"type": "DOCKER",
"docker": {
"image": "python:3",
"network": "BRIDGE",
"portMappings": [
{ "containerPort": 8080, "hostPort": 0, "servicePort": 9000, "protocol": "tcp" },
{ "containerPort": 161, "hostPort": 0, "protocol": "udp"}
]
}
}
}
См. Раздел «Режим мостовой сети» в https://mesosphere.github.io/marathon/docs/native-docker.html для получения дополнительных сведений.
person
Adam
schedule
01.02.2015
{id: mysql1, cmd: / bin / bash /start.sh, cpus: 0.5, mem: 500, instance: 1, container: {type: DOCKER, docker: {image: centos6mysql, network: BRIDGE, portMappings: [{ containerPort: 3306, hostPort: 0, servicePort: 0, протокол: tcp}]}}}
- person Hans; 02.02.2015
Вот как я создаю файл JSON. Однако после запуска файла JSON он будет просто продолжать показывать задачу развертывания в моем пользовательском интерфейсе Marathon, и мои контейнеры будут продолжать не запускаться.
- person Hans; 02.02.2015
Это может помочь предварительно получить образы докеров на каждом ведомом устройстве, чтобы Mesos не терял время ожидания завершения
docker pull
. Вы также можете увеличить executor_registration_timeout
, так как это включает ожидаемое время извлечения докера. Пример: echo "5mins" | sudo tee /etc/mesos-slave/executor_registration_timeout
- person Adam; 03.02.2015
Кроме того, я думаю, вы захотите установить не-0 servicePort, поскольку это порт всего кластера, на котором вы ожидаете найти свою службу, если вы используете haproxy или аналогичный для обнаружения службы.
- person Adam; 03.02.2015