DockerでTomcatその1
Docker imageを準備するにはいくつかの方法がある.
- docker image pull
- docker build
- docker import
などなど
今回はdocker image pullで公式イメージを落として,コンテナを起動するところまでをやってみる.
環境
- Host: macOS (Mojave)
- Guest: Ubuntu 18.04 (Oracle VirtualBox)
コンテナで立てるアプリはApache Tomcat.
Apache Tomcat - Wikipedia
公式イメージの使用可能なバージョン等はDocker Hubで確認できる
https://hub.docker.com/_/tomcat/
今回は執筆時点におけるlatestバージョンである8.5.35を用いる.
手順
- Docker Tomcat公式イメージをバージョン指定(8.5.35)で取得
$ docker image pull tomcat:8.5.35 8.5.35: Pulling from library/tomcat 54f7e8ac135a: Pull complete d6341e30912f: Pull complete (sniped) d1786b40ed4f: Pull complete Digest: sha256:d6f67aacce64010880a1e9ea6f0ace9fe9e20d39aae0489c8e88b4c14effe3a0 Status: Downloaded newer image for tomcat:8.5.35
- 成功するとイメージ一覧に追加される.
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE tomcat 8.5.35 48dd385504b1 5 days ago 475MB
- 追加されたイメージを用いてコンテナを起動する
$ docker container run -p 80:8080 --name my-tomcat-1 tomcat:8.5.35 (snip) XX-Dec-2018 15:00:37.407 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 2327 ms
(なお,今回は先にイメージ取得を行なったが,docker container runすると足りないイメージも取得してくれるので,イメージ取得は省略できる.
いきなりdocker container run..をしても同じ結果となる.)
- 新たにターミナルを開いて以下のコマンドを実行し, コンテナが起動していることを確認
$ docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 82b62a5f6b31 tomcat:8.5.35 "catalina.sh run" About a minute ago Up About a minute 0.0.0.0:80->8080/tcp my-tomcat-1
- ブラウザでhttp://localhost/にアクセスし, Tomcat/8.3.35のトップページが表示されることを確認
- http://localhost/examples/にあるJavaアプリも動くはず
- コンテナとイメージを(目的は果たしたので)削除
# コンテナ停止 $ docker container stop my-tomcat-1 # コンテナ削除 $ docker container rm my-tomcat-1 $ docker container ls # イメージ削除 $ docker image rm tomcat:8.5.35 $ docker image ls
以上