在Mac上安装的Docker上的CentOS上运行Tomcat

正如冗长的标题所述。

前提条件

我们假设以下内容已经被引入/实施。

    • Homebrew (OS X用パッケージマネージャー)

 

    Homebrew Cask (Homebrew機能拡張)

操作步驟

在OS X上运行Docker

首先,需要在OS X上运行Docker。
由于Docker是专为Linux设计的软件,因此需要使用虚拟机来进行中转。
配置如下:OS X → VirtualBox → boot2docker → Docker。

安装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

安装成功了。

运行boot2docker

我要创建boot2docker的虚拟机。

$ boot2docker init

紧接着启动。

$ boot2docker up

我会确认一下。

$ boot2docker status
running

你已经启动了。

3. 设定环境变量

应该在之前启动 boot2docker 时显示了一条 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

执行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 はコンテナで実行するコマンドです。

我們現在可以將CentOS作為Docker容器運行。

在CentOS上运行Tomcat。

下一步,我们将在Docker容器的CentOS上安装各种软件。
由于之前在命令中指定了 /bin/bash,所以应该已经启动了shell。

安装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和Tomcat。

从图像创建容器

根据所创建的映像启动容器。

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

-p 是端口转发的设置。
接下来让我们来查找boot2docker的IP地址吧。

$ boot2docker ip

如果在浏览器中打开这里,应该能显示Tomcat的默认页面。
刚才将boot2docker的端口80映射到Docker容器的8080端口,
所以不需要指定端口。

请提供相关资料
请提供参考信息
请提供参考资料

Docker可以被理解为一种容器化平台。

    • MacでDockerを試してみる

 

    はじめてのDocker on Mac OS X

汤姆猫

    • CentOS 6.5 に Tomcat7 をインストールする

 

    CentOS に Apache Tomcat を導入する
bannerAds