0

サービスのスタックを docker for mac にデプロイしようとしています。私のスタックを実際の群れにデプロイすることは完全に機能することを前もって言わせてください。

docker for mac Beta Version 17.05.0-ce-rc1-mac8 (16582) を実行しています。私はそれを実行swarm initしました。

これが私のyamlファイルです:

version: "3"
services:
  proxy:
    image: traefik:1.2-alpine
    command: --web --docker --docker.swarmmode --docker.domain=docker.localhost --docker.watch --debug --logLevel=DEBUG \
             --entryPoints='Name:https Address::443 TLS' \
             --entryPoints='Name:http Address::80 Redirect.EntryPoint:https' \
             --acme=true \
             --acme.entryPoint=https \
             --acme.email=myemail@gmail.com \
             --acme.storage=/etc/traefik/acme/acme.json \
             --acme.domains=mydomain.com \
             --acme.ondemand=true \
             --acme.onhostrule=true
    networks:
      - proxy
    ports:
      - 80:80
      - 443:443
      - 8080:8080
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - traefikdata:/etc/traefik/acme
    deploy:
      placement:
        constraints:
          - node.labels.env == prod
          - node.role == manager
          - node.labels.traefik == yes

volumes:
  traefikdata:
    driver: local-persist
    driver_opts:
      mountpoint: ${MOUNTPOINT}/data/traefik

networks:
  proxy:
    driver: overlay

問題は、docker stack services proxyREPLICAS 0/1 を返すことです。どうやら何かを待っているようです。docker service logs proxy_proxy何も返しません。の出力は次のsyslog -k Sender Dockerとおりです。

Apr 24 22:15:21 MacBook-Pro Docker[2567] <Warning>: DNS lookup registry-1.docker.io AAAA: NoSuchRecord
Apr 24 22:15:21 MacBook-Pro Docker[2567] <Notice>: DNS lookup registry-1.docker.io A: registry-1.docker.io <IN|19> [A (34.205.194.204)], registry-1.docker.io <IN|19> [A (34.239.237.19)], registry-1.docker.io <IN|19> [A (107.23.152.57)], registry-1.docker.io <IN|19> [A (50.17.48.108)], registry-1.docker.io <IN|19> [A (52.0.56.248)], registry-1.docker.io <IN|19> [A (52.45.235.210)]
Apr 24 22:15:21 MacBook-Pro Docker[2567] <Warning>: DNS lookup auth.docker.io AAAA: NoSuchRecord
Apr 24 22:15:21 MacBook-Pro Docker[2567] <Notice>: DNS lookup auth.docker.io A: auth.docker.io <IN|38> [A (34.205.194.204)], auth.docker.io <IN|38> [A (52.45.235.210)], auth.docker.io <IN|38> [A (52.0.56.248)], auth.docker.io <IN|38> [A (34.239.237.19)], auth.docker.io <IN|38> [A (50.17.48.108)], auth.docker.io <IN|38> [A (107.23.152.57)]
Apr 24 22:15:22 MacBook-Pro Docker[2567] <Notice>: DNS lookup registry-1.docker.io A: registry-1.docker.io <IN|19> [A (34.205.194.204)], registry-1.docker.io <IN|19> [A (34.239.237.19)], registry-1.docker.io <IN|19> [A (107.23.152.57)], registry-1.docker.io <IN|19> [A (50.17.48.108)], registry-1.docker.io <IN|19> [A (52.0.56.248)], registry-1.docker.io <IN|19> [A (52.45.235.210)]
Apr 24 22:15:22 MacBook-Pro Docker[2567] <Warning>: DNS lookup registry-1.docker.io AAAA: NoSuchRecord

それが正常かどうかはわかりませんが、画像は正常にダウンロードされました。

さて、何が起こっているのかをトラブルシューティングするにはどうすればよいですか? ところで、必要なすべてのラベルを適用しました。これが次の出力ですdocker inspect moby

[
    {
        "ID": "13xgtap3b898mwrxryj21phr5",
        "Version": {
            "Index": 41
        },
        "CreatedAt": "2017-04-24T19:41:30.814976621Z",
        "UpdatedAt": "2017-04-24T20:21:21.157096648Z",
        "Spec": {
            "Labels": {
                "env": "prod",
                "traefik": "yes"
            },
            "Role": "manager",
            "Availability": "active"
        },
        "Description": {
            "Hostname": "moby",
            "Platform": {
                "Architecture": "x86_64",
                "OS": "linux"
            },
            "Resources": {
                "NanoCPUs": 4000000000,
                "MemoryBytes": 2095894528
            },
            "Engine": {
                "EngineVersion": "17.05.0-ce-rc1",
                "Plugins": [
                    {
                        "Type": "Network",
                        "Name": "bridge"
                    },
                    {
                        "Type": "Network",
                        "Name": "host"
                    },
                    {
                        "Type": "Network",
                        "Name": "ipvlan"
                    },
                    {
                        "Type": "Network",
                        "Name": "macvlan"
                    },
                    {
                        "Type": "Network",
                        "Name": "null"
                    },
                    {
                        "Type": "Network",
                        "Name": "overlay"
                    },
                    {
                        "Type": "Volume",
                        "Name": "local"
                    },
                    {
                        "Type": "Volume",
                        "Name": "local-persist"
                    }
                ]
            }
        },
        "Status": {
            "State": "ready",
            "Addr": "192.168.65.2"
        },
        "ManagerStatus": {
            "Leader": true,
            "Reachability": "reachable",
            "Addr": "192.168.65.2:2377"
        }
    }
]

また、別のコンテナーで local-persist ドライバーを使用しています。

4

1 に答える 1

0

サービスのタスク ステータスを検索しproxyます。サービスの基礎となるタスクが失敗している理由がわかります。これにより、サービスが 0/1 を超えるレプリカに到達しない理由が説明されます。

を使用して、特定のサービスのタスクを見つけることができますdocker service ps $SERVICE_NAME。または、スタックのサービスのすべてのタスクをdocker stack ps $STACK_NAME.

いずれの場合も、最初の列からタスク ID を選択し、 を使用docker inspect $TASK_IDしてタスクの詳細を取得します。このStatusセクションには、 以外の内容が表示され、 の場合はエラーが表示される可能性がrunningありStateますMessage

于 2017-04-24T22:06:26.453 に答える