ベースとなるコンテナをalipneに変更

Dockerにおいて表題の通り。

■ 環境

  • Docker 1.11.1

■ きっかけ

今までは慣れたCentOSにしていたのだが、コンテナにログインして作業をする機会もほとんどないので軽量だと噂のalpineに変更してみることにする。今回作業をするのは下記ZooKeeperのコンテナである。

ZooKeeperの独自Dockerfileを作成

■ Dockerfile

更新後のDockerfileは下記のようになった。

FROM alpine
MAINTAINER withsin <withsin@gmail.com>

ENV ZOO_VERSION=3.4.8

RUN apk --no-cache add openjdk8-jre bash
RUN mkdir /opt \
    && wget -O - http://archive.apache.org/dist/zookeeper/zookeeper-${ZOO_VERSION}/zookeeper-${ZOO_VERSION}.tar.gz | tar zx -C /opt \
    && ln -s /opt/zookeeper-${ZOO_VERSION} /opt/zookeeper \
    && mkdir /opt/zookeeper/data \
    && chown -R root:root /opt/zookeeper-${ZOO_VERSION} \
    && mv /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

EXPOSE 2181 2888 3888

CMD ["/opt/zookeeper/bin/zkServer.sh", "start-foreground"]

変更点は下記の通り。

  1. ベースのコンテナをalpineに変更
  2. `yum install`を`apk add`に
  3. ZooKeeperの各種スクリプトでbashが使用されているのでインストール
  4. ZooKeeperのインストール前に/optを作成(alpineでは存在しなかったので)
  5. curlコマンドは存在しなかったのでwgetで代用
  6. `yum clean all`に該当する`apk cache clean`は、インストール時に`–no-cache`とすることで不要

■ build

ビルドした結果は下記の通り。

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
withsin/zookeeper       3.4.8-alpine        cb316b792c95        About an hour ago   154.9 MB
withsin/zookeeper       latest              cb316b792c95        About an hour ago   154.9 MB
  :
alpine                  latest              d7a513a663c1        4 weeks ago         4.798 MB
  :
withsin/zookeeper       3.4.8               3d8bc0053ba6        9 weeks ago         497.5 MB
  :
$

alpineがそもそも5Mもないのだが、JREを入れたせいか155M程度まで膨れ上がった。しかし、以前のCentOS時の500Mに比べると3分の1以下になっていることが分かる。今後はalpineをベースのコンテナとして採用することにする。

以上。

■ 関連

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください