Owasp ZAP@Docker

表題の件について。Dockerコンテナイメージがあるようなので使ってみたい。

■ 環境

  • Docker for Mac
  • Mac OSX El Capitan

■ Owasp ZAP

Docker – zaproxy/zaproxy Wiki
https://github.com/zaproxy/zaproxy/wiki/Docker

コンテナの取得。

$ docker pull owasp/zap2docker-stable

コンテナがかなり大きい。ちなみにサイズは下記であった。

$ docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
owasp/zap2docker-stable   latest              12c3b9347b07        5 months ago        1.33GB
$

WebSwing – zaproxy/zaproxy Wiki
https://github.com/zaproxy/zaproxy/wiki/WebSwing

上記を参考にコンテナを起動する。

$ docker run -u zap -p 8080:8080 -p 8090:8090 -i owasp/zap2docker-stable zap-webswing.sh

前述のURLに記載されている通り、ブラウザで下記にアクセスすると画面が表示された。

http://localhost:8080/?anonym=true&app=ZAP

これを使って脆弱性診断をしてみるとする。

ちなみに起動している間のコンテナイメージはさらに大きいようだ。

$ docker ps -a -s
CONTAINER ID        IMAGE                     COMMAND             CREATED             STATUS                       PORTS                                            NAMES               SIZE
5f4feb2057aa        owasp/zap2docker-stable   "zap-webswing.sh"   2 minutes ago       Up 2 minutes                 0.0.0.0:8080->8080/tcp, 0.0.0.0:8090->8090/tcp   cocky_bose          73.8MB (virtual 1.4GB)
  :
$

以上。

■ 関連

Dockerコンテナサイズ

Dockerコンテナサイズ

表題の件について。久しぶりにDockerを少し触っていて、使いたいコンテナを`pull`しているのだがサイズが大きいのか時間がかかる。そういえばコンテナのサイズってどこかに載ってたっけ?と思ったのでメモ。

■ 環境

  • Docker for Mac
  • Mac OSX El Capitan

■ docker images

単純に下記コマンドで表示される情報に含まれていた。

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
bkimminich/juice-shop   latest              e0a3fe792015        13 days ago         316MB
httpd                   latest              e74fcb59d25b        6 weeks ago         177MB
zookeeper               3.4.10              19604ac4a163        5 months ago        143MB
zookeeper               latest              19604ac4a163        5 months ago        143MB
mysql                   latest              22be5748ecbe        6 months ago        406MB
php                     latest              9364fb774af9        6 months ago        369MB
elasticsearch           latest              bca6fa4a7062        7 months ago        353MB
$

また、実行中のコンテナもサイズを取得できるようであった。

$ docker ps -a -s
CONTAINER ID        IMAGE                   COMMAND             CREATED             STATUS                    PORTS                    NAMES               SIZE
bd625fc65344        bkimminich/juice-shop   "npm start"         12 days ago         Exited (255) 9 days ago   0.0.0.0:3000->3000/tcp   juice               103kB (virtual 316MB)
$

上記はすでに停止させているコンテナであるが、サイズが取得できている。

以上。

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の起動方法