Dockerにおいて表題の通り。Dockerのversionの違いによるものかと思っていたのだが、どうやらSwarmが原因であったようなのでメモとして残しておく。
■ 環境
- Docker 1.8.2, 1.7.1
- Swarm 0.4.0
■ きっかけ
`docker images`で特定のコンテナイメージの情報だけが欲しい場合、下記のように実行することで取得できる。
$ docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos 6 a005304e4e74 3 months ago 203.1 MB
この動きを期待していたのだが、ある環境においては”コンテナイメージ名(REPOSITORY)“を指定しても全てのコンテナイメージの一覧が表示されてしまい、悩んでいた。
■ docker images [REPOSITORY]
取得できない環境。
どうやらSwarmで複数のDockerホストにまたがっている場合に、`docker images [REPOSITORY]`が効かないようである。下記はAmazonLinuxにおける状態である。
$ docker version
Client version: 1.7.1
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 786b29d/1.7.1
OS/Arch (client): linux/amd64
Server version: swarm/0.4.0
Server API version: 1.16
Go version (server): go1.4.2
Git commit (server): d647d82
OS/Arch (server): linux/amd64
$
$ docker images centos
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
java 7 ade42d38879d 7 weeks ago 587.4 MB
centos 6 a005304e4e74 3 months ago 203.1 MB
swarm latest 207e8b983242 8 weeks ago 10.2 MB
mongo 3.0.3 fa0a6690446b 3 months ago 257.7 MB
当初はDockerのversionによるものかと思ったが、1.7系のドキュメントを確認しても使用はできそうである。
http://docs.docker.com/v1.7/docker/reference/commandline/images/
実際に、Swarmを経由してのアクセスではなく、Dockerホストにログインし`docker images`を実行したところ、思い通りの結果を得ることができた。
現状では、Swarmを使用した環境では使えないオプションのようである。何かしら別の対応を考えなければならない。
以上。