ZooKeeper@Docker 3.4.10

表題がリリースされていた。

■ 環境

  • ZooKeeper 3.4.10
  • Docker 17.03.1-ce
  • Mac OSX El Capitan

■ ZooKeeper

library/zookeeper – Docker Hub
https://hub.docker.com/_/zookeeper/

コンテナイメージの取得。

$ docker pull zookeeper

起動。シングルノードであげる。またローカルMacから4文字コマンドを叩いてみるためにportも開ける。

$ docker run -ti --rm -p 2181:2181 zookeeper
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
2017-04-07 10:07:22,637 [myid:] - INFO  [main:QuorumPeerConfig@134] - Reading configuration from: /conf/zoo.cfg
  :

別のターミナルから4文字コマンドで確認。

$ echo srvr | nc localhost 2181
Zookeeper version: 3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
Latency min/avg/max: 0/0/0
Received: 1
Sent: 0
Connections: 1
Outstanding: 0
Zxid: 0x0
Mode: standalone
Node count: 4
$

アクセスできた。さて何が変わったのか見ていこう。

以上。

■ 関連

ApacheHttpd@Docker

表題の通り。そういえばnginxは設定の確認等で使っていたけどApacheはやっていなかったな、と思ってやってみる。

■ 環境

  • Apache Httpd 2.4.25
  • Docker for Mac 1.13.0
  • Mac OSX El Capitan

■ Docker

公式のコンテナイメージがあるようだ。

library/httpd – Docker Hub
https://hub.docker.com/_/httpd/

タグは下記のversionにあるようだ。

  • 2.2.32
  • 2.4.25

latest“タグが付いているのが”2.4.25“なのでこれを使うことにする。

$ docker pull httpd

稼働させてみる。nginxと同様に下記のようなオプションでいけるであろう。

$ docker run -ti --rm --name httpd -p 10080:80 httpd
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Fri Feb 10 10:18:25.781852 2017] [mpm_event:notice] [pid 1:tid 140331236390784] AH00489: Apache/2.4.25 (Unix) configured -- resuming normal operations
[Fri Feb 10 10:18:25.784835 2017] [core:notice] [pid 1:tid 140331236390784] AH00094: Command line: 'httpd -D FOREGROUND'

別のターミナルから下記のようにアクセスできることを確認。

$ curl localhost:10080
<h1>It works!</h1>
$

このコンテナは”Debian“のようなので設定ファイルの場所に当たりをつけて確認しようとしたのだが、設定ファイルがいつもの場所にない…。Dockerfileを確認してファイルの在り処を探したところ下記にあった。

$ docker exec httpd ls -l /usr/local/apache2/conf/httpd.conf
-rw-r--r-- 1 root www-data 20448 Jan 31 19:42 /usr/local/apache2/conf/httpd.conf
$

Alpine Linux“のコンテナもあるのでそれも確認してみようかな。

とここまで書いて前にも同じことを書いていることに気がついた…。まぁいいや。

以上。

■ 関連

docker history

表題のコマンド。

■ 環境

  • Docker for Mac 1.13.0
  • Mac OSX El Capitan

■ history

なんだろう?と思って実行してみた。

$ docker history -h
Flag shorthand -h has been deprecated, please use --help

Usage:     docker history [OPTIONS] IMAGE

Show the history of an image

Options:
      --help       Print usage
  -H, --human      Print sizes and dates in human readable format (default true)
      --no-trunc   Don't truncate output
  -q, --quiet      Only show numeric IDs
$

elasticsearch“のコンテナで試してみる。

$ docker history elasticsearch
IMAGE          CREATED       CREATED BY                                      SIZE     COMMENT
bca6fa4a7062   2 days ago    /bin/sh -c #(nop)  CMD ["elasticsearch"]        0 B
<missing>      2 days ago    /bin/sh -c #(nop)  ENTRYPOINT ["/docker-en...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  EXPOSE 9200/tcp 9300/tcp     0 B
<missing>      2 days ago    /bin/sh -c #(nop) COPY file:251082110c6dbd...   741 B
<missing>      2 days ago    /bin/sh -c #(nop)  VOLUME [/usr/share/elas...   0 B
<missing>      2 days ago    /bin/sh -c #(nop) COPY dir:c3faa196a3b1c87...   424 B
<missing>      2 days ago    /bin/sh -c set -ex  && for path in   ./dat...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  WORKDIR /usr/share/elas...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  ENV PATH=/usr/share/ela...   0 B
<missing>      2 days ago    /bin/sh -c set -x   && dpkg-divert --renam...   37.7 MB
<missing>      2 days ago    /bin/sh -c #(nop)  ENV ELASTICSEARCH_DEB_V...   0 B
<missing>      2 days ago    /bin/sh -c #(nop)  ENV ELASTICSEARCH_VERSI...   0 B
<missing>      2 weeks ago   /bin/sh -c set -x  && apt-get update && ap...   1.21 MB
<missing>      2 weeks ago   /bin/sh -c set -ex;  key='46095ACC8548582C...   1.22 kB
<missing>      2 weeks ago   /bin/sh -c set -x  && wget -O /usr/local/b...   2.7 MB
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV GOSU_VERSION=1.7         0 B
<missing>      2 weeks ago   /bin/sh -c /var/lib/dpkg/info/ca-certifica...   419 kB
<missing>      2 weeks ago   /bin/sh -c set -x  && apt-get update  && a...   142 MB
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV CA_CERTIFICATES_JAV...   0 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV JAVA_DEBIAN_VERSION...   0 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV JAVA_VERSION=8u111       0 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV JAVA_HOME=/usr/lib/...   0 B
<missing>      2 weeks ago   /bin/sh -c {   echo '#!/bin/sh';   echo 's...   87 B
<missing>      2 weeks ago   /bin/sh -c #(nop)  ENV LANG=C.UTF-8             0 B
<missing>      2 weeks ago   /bin/sh -c echo 'deb http://deb.debian.org...   55 B
<missing>      2 weeks ago   /bin/sh -c apt-get update && apt-get insta...   1.17 MB
<missing>      2 weeks ago   /bin/sh -c apt-get update && apt-get insta...   44.3 MB
<missing>      2 weeks ago   /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B
<missing>      2 weeks ago   /bin/sh -c #(nop) ADD file:89ecb642d662ee7...   123 MB
$

へーと思っただけである。

以上。

docker image prune

表題のコマンドを試す。

■ 環境

  • Docker for Mac 1.13.0
  • Mac OSX El Capitan

■ image prune

打ち間違えをしたような気がして表示されたヘルプを見ていたら気になった”prune“サブコマンド。

$ docker image

Usage:     docker image COMMAND

Manage images

Options:
      --help   Print usage

Commands:
  build       Build an image from a Dockerfile
  history     Show the history of an image
  import      Import the contents from a tarball to create a filesystem image
  inspect     Display detailed information on one or more images
  load        Load an image from a tar archive or STDIN
  ls          List images
  prune       Remove unused images
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rm          Remove one or more images
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

Run 'docker image COMMAND --help' for more information on a command.
$

使っていないイメージを削除してくれるようである。さらにヘルプを見てみる。

$ docker image prune --help

Usage:     docker image prune [OPTIONS]

Remove unused images

Options:
  -a, --all     Remove all unused images, not just dangling ones
  -f, --force   Do not prompt for confirmation
      --help    Print usage
$

prune“なんてあったんだ、と嬉しくなって早速試してみることに。今までは不要なコンテナイメージは下記のように削除をしていた。

docker rmi $(docker images -q -f dangling=true)

では早速`prune`サブコマンドを実行してみる。

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
$
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
elasticsearch       latest              3b9ab09f293c        13 days ago         353 MB
elasticsearch       <none>              3429053f4435        3 months ago        344 MB
mysql               latest              cf725f136fd2        3 months ago        383 MB
$
$ docker image prune
WARNING! This will remove all dangling images.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 0 B
$
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
elasticsearch       latest              3b9ab09f293c        13 days ago         353 MB
elasticsearch       <none>              3429053f4435        3 months ago        344 MB
mysql               latest              cf725f136fd2        3 months ago        383 MB
$

Tag“が”none“のコンテナイメージが削除されるのを期待したのだが、そうではないらしい…。”-a”というオプションもあるのでそちらを実行すると、、使われていないコンテナ全てが削除されてた…。イメージと違う動きをしてくれる…。

以上。

■ 関連

stub_status

nginxにおいて表題のモジュールを試す。

■ 環境

  • Nginx 1.11.8
  • Docker for Mac 1.12.6
  • Mac OSX El Capitan

■ stub_status

設定ファイルを下記のように追加した。今回の環境では`/etc/nginx/conf.d/default.conf`にとりあえず追記して試している。

    location = /status {
        stub_status;
    }

入れているのは、”server“ディレクティブ内である。これでnginxを起動してアクセスしてみる。ちなみにDockerのnginxのコンテナは下記のように起動している。

docker run -ti --rm -p 8080:80 -v `pwd`/nginx.conf:/etc/nginx/nginx.conf nginx

アクセスしてみると下記のように取得できた。

$ curl localhost:8080/status
Active connections: 1
server accepts handled requests
5 5 8
Reading: 0 Writing: 1 Waiting: 0
$

たいした情報は得られないようで少々寂しい。

以上。

■ 関連