docker 简单创建一个tomcat服务

上一篇已经介绍了docker相关的基本命令,这篇我们来详细介绍下通过docker如何创建一个toncat应用容器。
方法一:
如果不想自己搭建tomcat应用容器的话,可以直接在Docker Hub上直接search tomcat ,如下图:
docker search tomcat

可以看到有好多的内容,如果搜索结果显示有相关镜像,则可以直接通过 docker pull tomcat 来下载 tomcat镜像。
docker pull tomcat

当提示下载完毕时,我们可以通过docker images 查看本地是否已经有了该镜像
docker images

此时已经显示本地已经有了tomcat相关镜像
这时,我们可以通过docker run 命令来启动该服务:
docker run 命令后面可以跟很多参数主要参数有以下几种:

  1. -d 后台模式启动
  2. -i 标准输出
  3. -t 为虚拟终端
  4. -p 端口映射 是指本地端口与容器发布服务端口的一对一映射
  5. -P 随机端口映射 是只随机找一个端口与容器发布服务的端口映射
  6. --name 给容器起别名
  7. --net 选择网络模式
  8. --restart 设置该容器是否在docker服务启动时自动启动
  9. -v 挂在本地文件或者数据卷
    我们先通过docker run --name test1 -p 22222:8080 -it tomcat:latest 启动一个前台的tomcat容器
    docker run --name test1 -p 22222:8080 -it tomcat:latest

    通过图片可以发现tomcat服务已经启动成功了,我的虚拟机的ip地址是172.16.1.58我们试着通过业务访问一下。

    此时tomcat已经正常可用了。我们可以看到通过docker hub提供的镜像启动的tomcat的版本是8.5,如果我需要使用其他版本的tomcat该怎么办呢??此时可以通过dockerfile文件创建自己想安装版本的tomcat,那需要如何实现呢?
    方法二:(dockerfile文件版)
    所谓通过dockerfile文件创建一个应用容器,我个人认为就是通过将一套特定的变量规则编写在文件内,让程序可以识别并正确执行下去,具体如何创建的,请参考代码:
    创建一个tomcat_dockerfile文件,并写入一下内容

#Base image
FROM centos:7 定义自己创建系统需要的底层镜像文件

MAINTAINER

MAINTAINER [email protected] 作者说明
RUN yum install epel-release -y 安装相关插件
RUN yum install net-tools wget supervisor -y 安装相关插件
WORKDIR /web/ 设置容器工作的目录
RUN \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 修改容器的显示时间,不该时间会显示不准确
RUN wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz 下载9版本的tomcat 到容器中
RUN tar zxf apache-tomcat-9.0.11.tar.gz 解压压缩包
RUN rm apache-tomcat-9.0.11.tar.gz -rf 删除压缩包
RUN mv apache-tomcat-9.0.11 tomcat 将tomcat压缩包改名

RUN echo ‘[program:tomcat]‘ >> /etc/supervisord.d/tomcat.ini 创建supervisor监控tomcat的配置文件
RUN echo ‘command= /web/tomcat/bin/catalina.sh run ‘ >> /etc/supervisord.d/tomcat.ini
RUN echo ‘ autostart=true‘ >> /etc/supervisord.d/tomcat.ini
RUN echo ‘ autorestart=unexpected‘ >> /etc/supervisord.d/tomcat.ini
COPY jdk-8u181-linux-x64.tar.gz /web/ 从本地往容器中拷入jdk
RUN tar zxf jdk-8u181-linux-x64.tar.gz 解压jdk
RUN mv jdk1.8.0_181 java 给jdk改名
RUN rm -rf jdk-8u181-linux-x64.tar.gz 删除jdk压缩文件包
ENV JAVA_HOME /web/java 设置jdj的环境变量
ENV CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV PATH $PATH:$JAVA_HOME/bin
EXPOSE 8080 发布此容器开发的端口
ENTRYPOINT ["supervisord","-n",-c","/etc/supervisord.conf"] 容器启动后运行的默认命令
写好以上dockefile文件后 可以通过 docker build 命令生成相关的镜像文件,需要注意的是 在通过build创建镜像时,建议单独建立一个文件夹 将镜像所需要的所有内容均拷贝至该文件夹内进行操作,不要再根目录操作不然生成的镜像会携带大量无用的文件。
docker build -f tomcat_dockerfile -t tomcat-test:9 ./
-f 代表是通过指定的dickerfile文件来创建镜像
-t 代表创建好的镜像的名称和标签
./ 代表是当前目录 ,创建文件中强烈建议在需要创建的当前目录进行操作。

当提示镜像创建成功时,我们可以通过docker images 来查看是否已经生成镜像

通过图片说明我们已经成功生成了一个镜像文件
此时可以已后台的方式利用创建好的镜像启动一个容器
docker run --name test2 -dp 33333:8080 tomcat_test:9 ,创建完毕后可以通过docker images查看是否成功

此时容器已经创建成功,可以通过web进行访问

通过浏览器我们可以清楚的看到tomcat已经启动,至此方法二已经讲解完毕
方法三:
这种方法类似于常规的系统中的tomcat安装,我们需要先从docker hub上下载已经tomcat的基础镜像并通过这个镜像创建一个容器后,我们直接在容器内进行tomcat的安装。
创建镜像的命令是 docker run -ti --name tomcat centos:latest ,通过这条命令可以创建容器并进入容器,然后可以在容器里面根据正常tomcat安装的步骤进行安装,待安装完毕后通过exit退出容器,并用以下命令生成镜像
docker commit + 容器名 +要生成镜像名称:标签 即可生成镜像。
需要特别注意的是强烈不介意通过这种方式生成镜像,个人建议通过第二中方法来生成镜像,至于为何不建议通过此种方法生成镜像,已经在之前的docker 常用命令一文中说明,此处就不再进行说明了。

原文地址:http://blog.51cto.com/demonlg/2164039

时间: 2024-09-29 04:53:38

docker 简单创建一个tomcat服务的相关文章

用Express简单创建一个Mock服务

安装express: 1 npm install --save express 安装Mockjs: 1 npm install mockjs 建立MockServer.js文件: 1 let express = require('express'); //引入express 2 let Mock = require('mockjs'); //引入mock 3 4 let app = express(); //实例化express 5 6 app.use(function(req, res, ne

Docker实战之创建一个tomcat容器

一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic x86_64) 64位操作系统 建议内核在 3.8 以上,执行uname –r 查看内核如下图所示 2.2:更新系统 Ubuntu在安装的过程中没有指定root用户密码的操作,所以我们需要给root用户一个密码 命令如下 sudo passwd 系统会提示Enter New UNIX OR LINU

C# 创建一个WCF服务

做代码统计,方便以后使用: app.config配置文件设置: <configuration> <system.serviceModel> <bindings> <webHttpBinding> <binding name="webBinding" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMess

为MongoDB创建一个Windows服务

一:选型,根据机器的操作系统类型来选择合适的版本,使用下面的命令行查询机器的操作系统版本 wmic os get osarchitecture 二:下载并安装 附上下载链接 点击安装包,我这里是把文件安装到了(E:\MongoDB) 安装好之后该文件夹下就出现下面的文件, 这个时候新建一个Data文件夹用来存放MongoDB的所有数据,新建一个Log文件夹用来存放日志文件 三:启动MongoDB数据库,在命令行窗口执行下面的命令,执行完成之后会看到下面的提示信息 e:\mongodb\bin\m

创建带Tomcat服务的Centos Docker镜像

Tomacat服务器是一个免费的开源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下普遍使用,是开发和高度JSP程序的首选. 下面我就分步骤向大家介绍如何创建带Nginx服务的Centos Docker镜像. 基础镜像: [root@localhost ~]# docker images REPOSITORY     TAG       IMAGE ID      CREATED      VIRTUAL SIZE sshd    dockerfile  

使用PHP来简单的创建一个RPC服务

RPC全称为Remote Procedure Call,翻译过来为"远程过程调用".主要应用于不同的系统之间的远程通信和相互调用. 比如有两个系统,一个是PHP写的,一个是JAVA写的,而PHP想要调用JAVA中的某个类的某个方法,这时候就需要用到RPC了. 怎么调?直接调是不可能,只能是PHP通过某种自定义协议请求JAVA的服务,JAVA解析该协议,在本地实例化类并调用方法,然后把结果返回给PHP. 这里我们用PHP的socket扩展来创建一个服务端和客户端,演示调用过程. RpcS

在windows下创建一个Mongo服务

首先需要下载mongo的安装包 cmd.exe 这个需要用管理员权限打开 进入到mongo的安装目录 首先到C盘根据下面的命令手动创建一个 Data 文件夹 在Data 里面创建一个db文件夹一个log文件夹 mongod   表示执行mongo的命令 -dbpath   表示创建数据库文件 -logpath  表示创建日志文件 -install  -serviceName    表示创建的这个服务的名字 “” 中的是数据库的文件和日志的文件 创建数据库文件和创建日志文件的时候如果指定的路径中的

eclipse 在Servers窗口创建一个Tomcat 6.0 Server失败

web项目部署到tomcat除了用eclipse插件,eclipse也有一个Servers窗口来部署. 问题背景:Servers窗口,我之前创建过一个Tomcat v6.0 Server,后来我把自动生成的工程Servers删了,又把eclipse中tomcat路径配置改了一下(因为我用配置文件server.xml部署了). 问题出现了,现在我向重新建一个tomcat 6.0 server,会发现根本建立不了,如下图. 但是我发现其他tomct 7.0 server,5.0 server总之我之

深入学习Flask框架之简单创建一个项目

在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成度特别高.Flask只是一个内核,默认依赖于两个外部库: Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以扩展的形式进行嵌入使用. 一.一个简单的小例子 创建一个Flask项目的步骤: 1.导入Flask类 2.创建程序实例 3.定义视图(函数) 4.启动服务器 1