docker-compose config

表題のコマンドについて。

■ 環境

  • Mac OSX El Capitan
  • Docker 1.10.1
  • Docker Machine 0.6.0
  • Docker Compose 1.6.0

■ config

以前から利用している”Elasticsearch + Kibana“の”docker-compose.yml“ファイルを使用してやってみる。

$ docker-compose config
networks: {}
services:
  elasticsearch:
    container_name: elasticsearch
    image: elasticsearch
    ports:
    - 9200:9200
  kibana:
    container_name: kibana
    image: kibana
    links:
    - elasticsearch:elasticsearch
    ports:
    - 5601:5601
version: '1'
volumes: {}

$

networks“や”volumes“は今回のversionから使用することができるようであるが、まだよく把握できていない。実際に適用されている設定が表示されたものなのであろう。しかし、これだけでは”docker-compose.yml“とほとんど変わりがない。と思ってヘルプを再度確認して納得。

$ docker-compose config -h
Validate and view the compose file.

Usage: config [options]

Options:
    -q, --quiet     Only validate the configuration, don't print
                    anything.
    --services      Print the service names, one per line.
$

Validate“が主な機能なのであろう。試しに適当に追加して再度実行してみると下記のような結果になった。

$ docker-compose config
ERROR: Validation failed in file './docker-compose.yml', reason(s):
Unsupported config option for kibana: 'port' (did you mean 'ports'?)
$

メッセージの通り、”kibana“のコンテナ設定で”ports“の箇所を”port“に書き変えて実行してみた結果である。納得。

以上。

■ 関連

docker-compose down

Docker Composeにおいて表題のコマンドを試す。

■ 環境

  • Mac OSX El Capitan
  • Docker 1.10.1
  • Docker Machine 0.6.0
  • Docker Compose 1.6.0

■ down

`docker-compose`の”1.6.0“で新たに追加された`down`コマンドを試してみる。まずはヘルプ。

$ docker-compose down -h
Stop containers and remove containers, networks, volumes, and images
created by `up`. Only containers and networks are removed by default.

Usage: down [options]

Options:
    --rmi type      Remove images, type may be one of: 'all' to remove
                    all images, or 'local' to remove only images that
                    don't have an custom name set by the `image` field
    -v, --volumes   Remove data volumes
$

以前のversionでは`stop`した後に`rm`で削除をしていたがこれを一度にできるコマンドのようである。コンテナをデーモン起動すると`docker run –rm`のオプションが使用できないので、普段そういった使い方をしているコンテナに対しては便利な気がする。早速試してみる。

$ docker-compose ps
    Name                   Command               State                Ports
-----------------------------------------------------------------------------------------
elasticsearch   /docker-entrypoint.sh elas ...   Up      0.0.0.0:9200->9200/tcp, 9300/tcp
kibana          /docker-entrypoint.sh kibana     Up      0.0.0.0:5601->5601/tcp
$

この状態に対して`down`を実行。

$ docker-compose down
Stopping kibana ... done
Stopping elasticsearch ... done
Removing kibana ... done
Removing elasticsearch ... done
$
$ docker-compose ps
Name   Command   State   Ports
------------------------------
$

コンテナが削除されていることが確認出来る。

以上。

■ 関連

docker-compose create

表題のコマンドを試す。

■ 環境

  • Mac OSX El Capitan
  • Docker 1.10.0
  • Docker Machine 0.6.0
  • Docker Compose 1.6.0

■ create

1.6.0“から新規に追加された`create`コマンド。ヘルプは下記の通り。

$ docker-compose create -h
Creates containers for a service.

Usage: create [options] [SERVICE...]

Options:
    --force-recreate       Recreate containers even if their configuration and
                           image haven't changed. Incompatible with --no-recreate.
    --no-recreate          If containers already exist, don't recreate them.
                           Incompatible with --force-recreate.
    --no-build             Don't build an image, even if it's missing

$

コンテナの作成をするが起動はしない、というもののようである。今までは`up`コマンドで`create`と`start`をしているのと同じ結果になっていた。

実際に試してみる。使用するのは先日から使用している下記エントリの”docker-compose.yml“である。

Elasticsearch + Kibana on Docker Compose

まずは状態を確認。

$ docker-compose ps
Name   Command   State   Ports
------------------------------
$
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$

何も起動していない状態である。

`create`を実行。

$ docker-compose create
Creating elasticsearch
Creating kibana
$
$ docker-compose ps
    Name                   Command               State    Ports
---------------------------------------------------------------
elasticsearch   /docker-entrypoint.sh elas ...   Exit 0
kibana          /docker-entrypoint.sh kibana     Exit 0
$
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
110d07329a6e        kibana              "/docker-entrypoint.s"   6 minutes ago       Created                                 kibana
456363473d0f        elasticsearch       "/docker-entrypoint.s"   6 minutes ago       Created                                 elasticsearch
$

コンテナは稼働していない。”STATUS“に”Created“が追加されたような気がする。ここからこれらのコンテナを稼働させるには`start`を実行すれば良い。

$ docker-compose start
Starting elasticsearch
Starting kibana
$
$ docker-compose ps
    Name                   Command               State                Ports
-----------------------------------------------------------------------------------------
elasticsearch   /docker-entrypoint.sh elas ...   Up      0.0.0.0:9200->9200/tcp, 9300/tcp
kibana          /docker-entrypoint.sh kibana     Up      0.0.0.0:5601->5601/tcp
$
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
110d07329a6e        kibana              "/docker-entrypoint.s"   8 minutes ago       Up 8 seconds        0.0.0.0:5601->5601/tcp             kibana
456363473d0f        elasticsearch       "/docker-entrypoint.s"   8 minutes ago       Up 9 seconds        0.0.0.0:9200->9200/tcp, 9300/tcp   elasticsearch
$

以上。

■ 関連

docker-compose pull

表題の通り、`docker-compose pull`コマンドを確認。

■ 環境

  • Mac OSX El Capitan
  • Docker 1.10.0
  • Docker Machine 0.6.0
  • Docker Compose 1.6.0

■ pull

先日Macを移行したこともあり、まっさらな環境のためコンテナイメージの`pull`から行う。

使用する`docker-compose`のファイルは先日の下記エントリで使用したものである。

Elasticsearch + Kibana on Docker Compose

elasticsearch:
  image: elasticsearch
  container_name: elasticsearch
  ports:
    - 9200:9200
kibana:
  image: kibana
  container_name: kibana
  links:
    - elasticsearch:elasticsearch
  ports:
    - 5601:5601

現状は下記の通り。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
node                latest              baa18fdeb577        2 weeks ago         643 MB
$

では実際に`pull`を実行する。実行するディレクトリは上記`docker-compose.yml`ファイルがあるディレクトリで行う。ちなみにファイル名が違う場合には`-f`オプションを用いる。

$ docker-compose pull
Pulling elasticsearch (elasticsearch:latest)...
latest: Pulling from library/elasticsearch
  :
Status: Downloaded newer image for elasticsearch:latest
Pulling kibana (kibana:latest)...
latest: Pulling from library/kibana
  :
Status: Downloaded newer image for kibana:latest
$

順にコンテナイメージがダウンロードされたようである。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
kibana              latest              4803176dfa35        7 days ago          264.3 MB
elasticsearch       latest              5d9757311e75        9 days ago          346.2 MB
node                latest              baa18fdeb577        2 weeks ago         643 MB
$

`pull`は”1.6.0“で追加されたコマンドではもちろんないので、この環境を使って次は`create`を試してみる。

以上。

■ 関連

docker-compose 1.6.0で追加されたコマンド

表題の通り。先日アップグレードされたDocker Platformのひとつ、Composeが”1.6.0“がリリースされ、”1.5.2“からコマンドがいくつか追加されたようなので確認してみる。

■ 環境

  • Mac OSX ElCapitan
  • Docker 1.10.0
  • Docker Compose 1.6.0

■ 1.5.2

$ docker-compose -v
docker-compose version 1.5.2, build unknown
$
$ docker-compose -h
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f=...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE           Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME   Specify an alternate project name (default: directory name)
  --x-networking            (EXPERIMENTAL) Use new Docker networking functionality.
                            Requires Docker 1.9 or later.
  --x-network-driver DRIVER (EXPERIMENTAL) Specify a network driver (default: "bridge").
                            Requires Docker 1.9 or later.
  --verbose                 Show more output
  -v, --version             Print version and exit

Commands:
  build              Build or rebuild services
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pulls service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  migrate-to-labels  Recreate containers to add labels
  version            Show the Docker-Compose version information
$

■ 1.6.0

$ docker-compose -v
docker-compose version 1.6.0, build unknown
$
$ docker-compose -h
Define and run multi-container applications with Docker.

Usage:
  docker-compose [-f=...] [options] [COMMAND] [ARGS...]
  docker-compose -h|--help

Options:
  -f, --file FILE           Specify an alternate compose file (default: docker-compose.yml)
  -p, --project-name NAME   Specify an alternate project name (default: directory name)
  --verbose                 Show more output
  -v, --version             Print version and exit

Commands:
  build              Build or rebuild services
  config             Validate and view the compose file
  create             Create services
  down               Stop and remove containers, networks, images, and volumes
  events             Receive real time events from containers
  help               Get help on a command
  kill               Kill containers
  logs               View output from containers
  pause              Pause services
  port               Print the public port for a port binding
  ps                 List containers
  pull               Pulls service images
  restart            Restart services
  rm                 Remove stopped containers
  run                Run a one-off command
  scale              Set number of containers for a service
  start              Start services
  stop               Stop services
  unpause            Unpause services
  up                 Create and start containers
  version            Show the Docker-Compose version information
$

追加されたコマンドは下記のようである。

削除されたコマンドもあるようだ。

  • migrate-to-labels

今回は簡単ではあるがここまで。次回はこれらのコマンドについて見ていってみることにする。

以上。

■ 関連