21
23

More than 5 years have passed since last update.

MacにインストールしたDocker上のCentOSでTomcatを動かす

Last updated at Posted at 2015-05-18

長ったらしいタイトルのとおりです。

前提条件

以下が導入されていることを前提とします。

手順

OS XでDockerを動かす

まずOS XでDockerを動かせるようにします。
DockerはLinux向けのソフトウェアなのでVMを挟む必要があります。
OS X → VirtualBoxboot2dockerDocker という構成です。

1. VirtualBox、boot2docker、Dockerをインストールする

Homebrewを利用するのでインストールは簡単です。

$ brew update
$ brew tap homebrew/binary
$ brew cask install virtualbox
$ brew install boot2docker docker

これだけ!

$ boot2docker version
Boot2Docker-cli version: v1.6.2
Git commit: cb2c3bc
$ docker -v
Docker version 1.6.2, build 7c8fca2

インストール出来ました。

2. boot2dockerを実行する

boot2dockerのVMを作成します。

$ boot2docker init

続いて起動。

$ boot2docker up

確認してみます。

$ boot2docker status
running

起動してますね。

3. 環境変数を設定する

先ほど boot2docker up した時にexport文が表示されたはずです。
これでクライアントからのアクセスが可能になるので実行しましょう。

$ export DOCKER_HOST=tcp://192.168.XXX.XXX:XXXX
$ export DOCKER_CERT_PATH=/Users/your.user.name/.boot2docker/certs/boot2docker-vm
$ export DOCKER_TLS_VERIFY=1

4. Dockerを実行する

ベースとなるイメージをダウンロードします。
今回使用するのはCentOS 6です。

$ docker pull centos:centos6

docker images でイメージが一覧表示されます。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos              centos6             b9aeeaeb5e17        3 weeks ago         202.6 MB

ダウンロードされたので実行しましょう。

$ docker run -t -i -v /shared/:/shared centos:centos6 /bin/bash

ざっくりとコマンドの内容を解説します。

  • -t-i は標準入力や端末デバイスに関するオプションです。
  • -v は共有領域を指定するオプションです。ホスト側のディレクトリ:コンテナ側のディレクトリ で指定します。
  • centos:centos6 はイメージ名です。
  • /bin/bash はコンテナで実行するコマンドです。

これでDockerコンテナとしてCentOSを動かすことが出来ました。

CentOSでTomcatを動かす

続いてDockerコンテナのCentOSに各種ソフトウェアをインストールしていきます。
先ほどコマンドに /bin/bash を指定したので、既にシェルが起動しているはずです。

1. Tomcat、Javaをインストールする

yumとrpmでインストールしていきます。

$ yum -y install yum-plugin-priorities
$ rpm -Uvh http://mirrors.dotsrc.org/jpackage/6.0/generic/free/RPMS/jpackage-release-6-3.jpp6.noarch.rpm
$ yum -y --nogpgcheck install tomcat6 tomcat6-webapps tomcat6-admin-webapps java-1.7.0-openjdk

それから今回使うWARファイルをTomcatにデプロイします。

$ cp /shared/test.war /var/lib/tomcat6/webapps/.

2. Tomcatを起動する

あとはTomcatを起動するだけです。

$ /etc/init.d/tomcat6 start
Starting tomcat6:                                          [  OK  ]

無事に起動されました。
また、システム開始時に自動で起動するようにしておきます。

$ chkconfig tomcat6 on

これでコンテナの設定は完了です。
コンテナから抜けましょう。

$ exit

Dockerのコンテナとイメージ

1. コンテナからイメージを作る

今度は先ほどのコンテナをイメージ化しましょう。
docker ps でコンテナ一覧を表示します。
-a オプションで停止しているコンテナも含まれるようになります。

$ docker ps -a
CONTAINER ID    IMAGE           COMMAND        CREATED          STATUS                      PORTS    NAMES
dd1bd069a5bf    centos:centos6  "/bin/bash"    5 seconds ago    Exited (0) 2 seconds ago             distracted_perlman

dd1bd069a5bf がコンテナIDです。
これをイメージ化します。

$ docker commit dd1bd069a5bf centos_with_tomcat

確認します。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos_with_tomcat  latest              4d81cb6ac299        7 seconds ago       897.5 MB
centos              centos6             b9aeeaeb5e17        3 weeks ago         202.6 MB

centos_with_tomcat が出来ました。

2. イメージからコンテナを作る

作ったイメージを元にコンテナを立ち上げます。

$ docker run -d -p 80:8080 centos_with_tomcat /sbin/init

-p はポートフォワーディングの設定です。
次にboot2dockerのIPを調べましょう。

$ boot2docker ip

ここをブラウザで開けばTomcatのデフォルトページが表示されるはずです。
先ほどboot2dockerのポート80をDockerコンテナの8080にマッピングしたので
ポートの指定も不要です。

参考情報

Docker

Tomcat

21
23
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
23