《Docker学习(一)Docker简介》

《Docker学习(二)在Windows10中安装Docker》

《Docker学习(三)在CentOS中安装Docker》

《Docker学习(四)Docker命令》

安装Tomcat

查找tomcat镜像,Docker 客户端向Docker 的守护进程发送该指令,然后Docker 的守护进程将会到Docker Hub中搜索对应的tomcat镜像,然后返回给Docker 客户端。

docker search tomcat

可以根据实际的需要,拉取上图中指定NAME的tomcat,本文中直接拉取最新的tomcat,执行如下指令

docker pull tomcat

执行如下指令,查看当前Linux安装的Docker中的镜像,发现镜像tomcat已经存在,其TAG为latest

docker images

创建并启动tomcat容器,给其指定容器名称为container_tomcat,指定端口为主机的8200与tomcat容器的8080端口关联,即将tomcat容器使用的8080端口映射到我们的Linux系统的8200端口。

docker run --name container_tomcat -p 8200:8080 tomcat:latest

 

此时,在Xshell中选中当前会话,然后右键复制会话

执行如下指令,查看容器信息,可以看到如下图椭圆标注的端口映射信息

docker ps -a

还可以通过docker port来查看容器的端口映射信息

docker port bdb45647f017
docker port container_tomcat

在新创建的会话界面中使用curl来测试一下。curl是一个命令行工具,通过指定的URL来上传或下载数据,并将数据展示出来。执行如下指令

curl 127.0.0.1:8200

在浏览器中访问,结果如下:

使用docker logs查看日志信息,-f 参数让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。

docker logs -f bdb45647f017

终端页面停留在如上图页面中,因为我们的docker run没有设置-d,即没有设置让容器在后台运行。-d:让容器在后台运行。

使用docker inspect查看Docker 容器的配置和状态信息

docker inspect  bdb45647f017

安装JDK

从上面的docker inspect查看到tomcat的版本为9.0.37

在Tomcat官网查看其对应的JDK版本的要求

查看Tomcat9.0对应的文档,如下图所示需要Java 8或者以上版本

因此,本文中选择的是jdk-8u191-linux-x64.tar.gz ,将其下载并添加至安装有Docker的Linux系统中。

docker cp :用于容器与主机之间的数据拷贝。使用该指令将jdk安装包拷贝到容器container_tomcat中。

docker cp ./jdk-8u191-linux-x64.tar.gz bdb45647f017:/root

docker exec :在运行的容器中执行命令。在容器 container_tomcat中开启一个交互模式的终端。

docker exec -i -t  container_tomcat /bin/bash

创建目录/usr/local/java

mkdir -p /usr/local/java

将jdk-8u191-linux-x64.tar.gz解压缩到/usr/local/java目录下

cd /root
tar -zxvf ./jdk-8u191-linux-x64.tar.gz -C /usr/local/java/

安装vi指令

apt-get update
apt-get install vim

编辑.bashrc文件,添加如下图中的2行export内容

vi ~/.bashrc

执行source指令,让环境变量生效

source ~/.bashrc

执行如下指令,测试jdk是否安装和配置成功

java -version

测试Tomcat

通过docker inspect查看docker中tomcat的所在位置

docker inspect container_tomcat

通过docker exec 对container_tomcat开启一个交互式终端

docker exec -i -t container_tomcat /bin/bash

查看tomcat中的webapps目录,因为之前访问的时候都是返回404

从上图中的操作中,发现webapps中无内容。

docker cp :用于容器与主机之间的数据拷贝。通过该命令将Linux系统上之前已经存在的Tomcat下webapps中的ROOT拷贝到Docker中的container_tomcat容器webapps目录下

docker cp ./ROOT container_tomcat:/usr/local/tomcat/webapps/

在container_tomcat交互式终端中查看webapps目录

此时,再次使用curl进行测试,发现Tomcat成功访问的页面源码

curl 127.0.0.1:8200

在浏览器中访问,结果如下

 

此时,JDK和Tomcat在Docker中均已成功安装和测试。

 

欢迎关注个人微信公众号“我爱编程持之以恒”

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐