httpd@Dockerの起動方法

表題の件について。過去2回ほど同じネタをあげているのだが、その時のメモを見て同じ方法で起動しようとしたが、起動できなかったのでメモしておく。

■ 環境

  • httpd 2.4.27
  • Docker for Mac
  • Mac OSX El Capitan

■ httpd

コンテナは下記で取得した。

$ docker pull httpd

以前のエントリの通り下記で起動しようとしたのだが、起動できずに落ちてしまう。

$ 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
[Tue Aug 22 10:14:51.095259 2017] [mpm_event:notice] [pid 1:tid 139888904910720] AH00489: Apache/2.4.27 (Unix) configured -- resuming normal operations
[Tue Aug 22 10:14:51.095353 2017] [core:notice] [pid 1:tid 139888904910720] AH00094: Command line: 'httpd -D FOREGROUND'
[Tue Aug 22 10:14:51.221791 2017] [mpm_event:notice] [pid 1:tid 139888904910720] AH00492: caught SIGWINCH, shutting down gracefully
$

さてどうしたものかと探してみると、過去のISSUEがあったので参考にしてみた。

とりあえず”-d“を付けて起動してみることにした。

$ docker run -dti --rm --name httpd -p 10080:80 httpd
be3eaf245ecb080b3d3ed30fe5b61f582c6d693b82bfd31d4051f24210a06e08
$ docker ps -a
CONTAINER ID        IMAGE               COMMAND              CREATED             STATUS              PORTS                   NAMES
be3eaf245ecb        httpd               "httpd-foreground"   4 seconds ago       Up 2 seconds        0.0.0.0:10080->80/tcp   httpd
$

起動してくれた。ログも確認してみる。

$ docker logs 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
[Tue Aug 22 10:26:58.420633 2017] [mpm_event:notice] [pid 1:tid 139631637636992] AH00489: Apache/2.4.27 (Unix) configured -- resuming normal operations
[Tue Aug 22 10:26:58.420751 2017] [core:notice] [pid 1:tid 139631637636992] AH00094: Command line: 'httpd -D FOREGROUND'
$

さて、しばらく触っていない間にどんな変更があったのであろう。とりあえず検証環境として使いたいだけだったので詳細はまた別途調べてみることにする。

-d“の時に”–rm“も以前は使えなかったような気がするのだが、それも気になるし。

以上。

■ 関連

ApacheHttpd@Docker

httpd@Docker

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
$

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

以上。

■ 関連

ZooKeeper 3.4.10

ZooKeeper@Docker – シングルノード

ZooKeeper 3.4.10 on Homebrew

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“のコンテナもあるのでそれも確認してみようかな。

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

以上。

■ 関連

nginx@Docker

httpd@Docker

httpd@Dockerの起動方法

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”というオプションもあるのでそちらを実行すると、、使われていないコンテナ全てが削除されてた…。イメージと違う動きをしてくれる…。

以上。

■ 関連