docker - mesos/marathon的新手。如何部署新的自定义 docker ?

标签 docker mesos marathon

我是初学者和马拉松新手。

我有一个设置,其中一个 docker 是自定义的,另一个是mysql服务器实例。这两个链接并传递信息。如何在mesos上部署它?我正在使用当前设置的单节点主节点和从节点。

最佳答案

要链接Docker容器,请使用Mesos-DNS。我在下面使用Playa Mesos来解释设置。

在Playa上设置Mesos-DNS很简单:使用mesosphere/mesos-dns镜像,并使用以下应用规范将其部署在Marathon上:

{
"id": "mesos-dns",
"instances": 1,
"cpus": 1,
"mem": 512,
"cmd": "/mesos-dns -config=/config.json",
"container": {
  "type": "DOCKER",
  "docker": {
    "image": "mesosphere/mesos-dns:latest",
    "network": "HOST"
 },
 "volumes": [
      {
        "containerPath": "/config.json",
        "hostPath": "/etc/mesos-dns/config.js",
        "mode": "RW"
      }
    ]
  }
}

使用以下config.js:
{
 "zk": "zk://127.0.0.1:2181/mesos",
 "refreshSeconds": 60,
 "ttl": 60,
 "domain": "mesos",
 "port": 53,
 "resolvers": ["10.0.2.3"],
 "timeout": 5,
 "email": "root.mesos-dns.mesos"
}

另外,请确保resolv.conf在第一个位置具有正确的条目:
$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
nameserver 10.0.2.3
search net

然后,您可以这样动态地discover您的服务(在“Vagrant”框中):
dig _$APPID._tcp.marathon.mesos SRV

其中$APPID是用于部署自定义Docker镜像的标识符。上面的命令将告诉您Marathon分配给您的应用程序的IP和端口。您也可以使用Mesos-DNS HTTP API进行服务发现。

注意1:DCOS预先安装了Mesos-DNS,因此您可以直接将其用于服务发现。

注意2:如果遇到您的应用无法理解SRV记录的问题,则可以尝试以下变通方法:https://github.com/the-tetanus-clinic/srv-shim

关于docker - mesos/marathon的新手。如何部署新的自定义 docker ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524236/

相关文章:

java - 访问入口点中的 dockerfile ENV 变量

rabbitmq - 服务器重启后自动重新连接到 RabbitMQ 集群

docker - minimesos中的 “containersol/minimesos”图片是什么?

java - Docker/Marathon 上的 Spring Boot 数组环境变量

docker - 使用 Mesos/Marathon 链接 Docker 容器

mysql - Apache Mesos、MESOS-DNS、MARATHON 和 Docker

php - 在 php :7. 4-fpm 镜像上安装 PHP-zip

windows - Windows 10家庭版:can't reach ‘localhost:8000’ using Docker

windows - Windows机器上Spark应用如何搭建集群环境?

docker - 为什么容器无法在 DC/OS 中获取 URI?