在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 を導入する