2

我正在尝试在 mesos 中运行我的容器并将所有日志输出到 Cloudwatch。根据 Docker 文档,我应该将以下内容传递给“docker run”:

--log-driver=awslogs --log-opt awslogs-region=us-east-1 --log-opt awslogs-group=myLogGroup

(来自https://docs.docker.com/engine/admin/logging/awslogs/#awslogs-region

到码头运行。为了使用 Marathon(或 Chronos,我假设?)来实现这一点,我应该将以下块添加到我的配置 json 文件中以执行我的任务

            "parameters": [
            { "key": "hostname", "value": "a.corp.org" },
            { "key": "volumes-from", "value": "another-container" },
            { "key": "lxc-conf", "value": "..." }
        ]

https://mesosphere.github.io/marathon/docs/native-docker.html

看来此配置将以下内容附加到您的 docker run

--{key}={value}

由于我需要执行“--log-opt awslogs-region=us-east-1”形式的操作,因此我输入“key”:“log-opt awslogs-region”、“value”:“us-east” -1”,正确生成 docker run 命令,正如我从 mesos 中的 stderr 中看到的那样。但是,然后我收到一条错误消息

unknown flag: --log-opt awslogs-region
See 'docker run --help'.

直接在 mesos slave 上从 stderr 运行生成的 docker run 命令可以正常工作。

4

1 回答 1

0

您可以使用 args 参数来传递自定义 docker 运行选项,

"args": [ "--log-driver", "awslogs" ]

于 2020-01-20T06:50:34.493 回答