web-dev-qa-db-ja.com

docker-compose 3でdockerdeployを使用する方法は?

コマンドを作成するとSudo docker stack deploy -c docker-compose.yml test

Ignoring unsupported options: build, external_links, links, restart

Updating service test_cache (id: me2vh1lffrl4ppzomphin167la)
Updating service test_lb (id: ycnne1ifpt517wdbfdg1g5tlup)
Updating service test_media (id: rr3ural9hjz0mw6hjx7n2vywm)
Creating service test_web

Error response from daemon: rpc error: code = 3 desc = ContainerSpec: image reference must be provided

そして、私はこのエラーを受け取ります-デーモンからのエラー応答:rpcエラー:コード= 3 desc = ContainerSpec:画像参照を提供する必要があります

しかし、私はこのコンテナのイメージを作成します。

あなたのcompose.ymlファイルには、docker stack deployが必要とする画像セクションが含まれていません。 dockerはレジストリ内のイメージのsha256へのピン留めを使用してすべてのノードが同じイメージを実行するようにするため、これらのイメージをスウォームにデプロイする場合は、これらのイメージをレジストリサーバーにプッシュする必要もあります。また、swarmはイメージを構築しないため、ローカルにイメージが含まれていないノードは、レジストリからプルされない限り、このイメージを実行できません。

16
BMitch

これは遅いですが、docker-compose.ymlファイルに次のようなコメントがあると、このエラーが発生したと言いたいです。

version: "3"
services:
  web:
    # pull the image from repository
    image: myname/docker-private:testproj
    ...

ただし、コメントは行の最初の文字から開始する必要があります。

version: "3"
services:
  web:
# pull the image from repository
    image: myname/docker-private:testproj
    ...

これで問題が修正されました。

0
Nuno