15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Docker pull commit push Dockerfile Apache Tomcat環境をつくる

Last updated at Posted at 2016-03-28

Dockerのインストール、pull、commit、push、Dockerfileからのbuildなど、一通りの事をApache Tomcat環境を作ることを目的にやってみましょう。

環境:VMWarePlayer or VirtualBoxの仮想マシン上にCentOS7.1を初期インストール

事前にDokerHubのアカウントを作成しておきましょう。

Apache:2.2.15
Tomcat:6.0.24

Dockerのインストール

1.Dockerのインストール

コマンド
# yum -y install docker

2.Dockerの自動起動設定及びサービスの起動

コマンド
# systemctl enable docker.service
# systemctl start docker.service

3.コンテナーイメージへのディスク最適化設定追加

コマンド
# vi /etc/sysconfig/docker
OPTIONS='--selinux-enabled'
↓
OPTIONS='--selinux-enabled --storage-opt dm.no_warn_on_loop_devices=true'
:wq

4.Dockerサービスの再起動

コマンド
# systemctl restart docker.service

DockerfileからApache Tomcat環境作成

1.build用のディレクトリを作成

コマンド
# mkdir ~/build_tomcat

2.Dockerfileを作成

コマンド
# cd build_tomcat
# vi Dockerfile
Dockerfileのソースは事項参照
:wq
Dockerfile
#centos6のイメージを取得
FROM centos:centos6

#Dockerfile作成者
MAINTAINER linaction

#タイムゾーンの設定
RUN /bin/cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

#yumによるHTTPD,tomcatのインストール
RUN yum -y install httpd tomcat6 tomcat6-webapps tomcat6-admin-webapps tomcat6-docs-webapp

#tmpディレクトリに移動
WORKDIR /tmp/

#DocumentRootディレクトリの所有者をapacheに変更
RUN chown -R apache.apache /var/www/html/

#tomcatの設定ファイルのバックアップ
RUN cp -p /usr/share/tomcat6/conf/tomcat-users.xml /usr/share/tomcat6/conf/tomcat-users.xml_`date +%Y%m%d`

#tomcatの設定ファイルに必要な情報をsedコマンドで書き換える
RUN sed -i -e 's#</tomcat-users>#<user username="admin" password="password" roles="manager"/></tomcat-users>#g' /usr/share/tomcat6/conf/tomcat-users.xml

#httpdのconfファイルのバックアップ
RUN cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_`date +%Y%m%d`

#httpd.confにApacheとtomcatの連携設定の追記
RUN sed -i -e 's*#</VirtualHost>*#</VirtualHost>\nProxyRequests Off\n<Location /tomcat >\nProxyPass ajp://localhost:8009/\n</Location>\n<Location /docs >\nProxyPass ajp://localhost:8009/docs/\n</Location>\n<Location /manager >\nProxyPass ajp://localhost:8009/manager/\n</Location>\n<Location /examples >\nProxyPass ajp://localhost:8009/examples/\n</Location>*g' /etc/httpd/conf/httpd.conf

#httpd,tomcat6の起動スクリプトの作成
RUN echo -e "service httpd start\nservice tomcat6 start\n/bin/bash" > /startService.sh

#httpd,tomcat6の起動スクリプトの権限設定
RUN chmod o+x /startService.sh

#公開ポート
EXPOSE 80

#httpd,tomcat6の起動スクリプトの実行
CMD /startService.sh

```lang:コマンド
# docker build -t DockerHubアカウント名/tomcat6:ver1.0 ~/build_tomcat
・
・
Successfully built 0c4e45b86bcd

4.コンテナーを起動

コマンド
# docker run -itd -p 80:80 --name tomcat6 DockerHubアカウント名/tomcat6:ver1.0
3ce407416874308af370951ecf56c77b53e2aa405ba20aae51593fd3a0e2e108

コンテナーのcommit

1.ブラウザ確認

http://VirtualBoxのIPアドレス/tomcat/」にアクセスし、tomcatの管理画面が表示されることを確認

2.コンテナーを停止

コマンド
# docker stop tomcat6

3.コンテナーを保存

コマンド
# docker commit tomcat DockerHubアカウント名/tomcat6:ver1.0
cf75652d0f8a1509a5ad132ecf1214416c2b8dbf9fe9f93830ab8b51e738db73

4.コンテナーイメージを確認

コマンド
# docker images
REPOSITORY                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
DockerHubアカウント名/tomcat6         ver1.0              cf75652d0f8a        56 seconds ago      749.7 MB
docker.io/DockerHubアカウント名/centos   centos6             ce76491a3be1        2 hours ago         190.6 MB

コンテナーイメージをDocker Hubにpush

1.Docker Hubにログイン

コマンド
# docker login
Username:
Password:
Email:
Login Succeeded

2.Docker Hubにコンテナーイメージをpush

コマンド
# docker push DockerHubアカウント名/tomcat6
Do you really want to push to public registry? [y/n]: y
The push refers to a repository [docker.io/DockerHubアカウント名/tomcat6] (len: 0)
・
・
Digest: sha256:97e3bd8b7ed451163af7284513d398c426c796451d343400a9859156c1a8c021

3.リポジトリーを確認

コマンド
# docker search DockerHubアカウント名
INDEX       NAME                            DESCRIPTION               STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/DockerHubアカウント名/tomcat6

コンテナーイメージを再ダウンロード

最後に全てのイメージと停止コンテナを削除して、pushしたtomcat6のコンテナーイメージをダウンロードして起動してみましょう。

1.停止コンテナの一括削除

コマンド
# docker rm `docker ps -a -q`
# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

2.イメージの一括削除

コマンド
# docker rmi イメージID
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE

3.tomcat6コンテナーイメージをダウンロード

コマンド
# docker pull -a DockerHubアカウント名/tomcat6

4.コンテナーを起動

コマンド
# docker run -itd -p 80:80 --name tomcat6 DockerHubアカウント名/tomcat6:ver1.0

5.ブラウザ確認

http://VirtualBoxのIPアドレス/tomcat/」にアクセスし、tomcatの管理画面が表示されることを確認

Tomcat Manager
ID:admin
Pass:password

15
18
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
15
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?