设为首页 收藏本站
查看: 802|回复: 0

[经验分享] docker 简单创建一个tomcat服务

[复制链接]

尚未签到

发表于 2018-12-1 11:34:40 | 显示全部楼层 |阅读模式
  上一篇已经介绍了docker相关的基本命令,这篇我们来详细介绍下通过docker如何创建一个toncat应用容器。
方法一:
如果不想自己搭建tomcat应用容器的话,可以直接在Docker Hub上直接search tomcat ,如下图:
docker search tomcat
http://i2.运维网.com/images/blog/201808/24/5da9abc395d659973efd71729e08dd33.png
可以看到有好多的内容,如果搜索结果显示有相关镜像,则可以直接通过 docker pull tomcat 来下载 tomcat镜像。
docker pull tomcat
http://i2.运维网.com/images/blog/201808/24/b929ec0f54aacf19b92ff93a2eddd270.png
当提示下载完毕时,我们可以通过docker images 查看本地是否已经有了该镜像
docker images
http://i2.运维网.com/images/blog/201808/24/7403919cec1b360077da9e074c531a68.png
此时已经显示本地已经有了tomcat相关镜像
这时,我们可以通过docker run 命令来启动该服务:
docker run 命令后面可以跟很多参数主要参数有以下几种:

  • -d 后台模式启动
  • -i 标准输出
  • -t 为虚拟终端
  • -p 端口映射 是指本地端口与容器发布服务端口的一对一映射
  • -P 随机端口映射 是只随机找一个端口与容器发布服务的端口映射
  • --name 给容器起别名
  • --net 选择网络模式
  • --restart 设置该容器是否在docker服务启动时自动启动
  • -v 挂在本地文件或者数据卷
    我们先通过docker run --name test1 -p 22222:8080 -it tomcat:latest  启动一个前台的tomcat容器
    docker run --name test1 -p 22222:8080 -it tomcat:latest  
    http://i2.运维网.com/images/blog/201808/24/02d62e39d4ef1fa0b8620b077a578a10.png
    通过图片可以发现tomcat服务已经启动成功了,我的虚拟机的ip地址是172.16.1.58我们试着通过业务访问一下。
    http://i2.运维网.com/images/blog/201808/24/d0387d6b30512ac51530b3c32f837c59.png
    此时tomcat已经正常可用了。我们可以看到通过docker hub提供的镜像启动的tomcat的版本是8.5,如果我需要使用其他版本的tomcat该怎么办呢??此时可以通过dockerfile文件创建自己想安装版本的tomcat,那需要如何实现呢?
    方法二:(dockerfile文件版)
    所谓通过dockerfile文件创建一个应用容器,我个人认为就是通过将一套特定的变量规则编写在文件内,让程序可以识别并正确执行下去,具体如何创建的,请参考代码:
    创建一个tomcat_dockerfile文件,并写入一下内容
  #Base image            
FROM centos:7       定义自己创建系统需要的底层镜像文件
MAINTAINER
  MAINTAINER demonlg0112@hotmail.com     作者说明
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 代表创建好的镜像的名称和标签
./ 代表是当前目录 ,创建文件中强烈建议在需要创建的当前目录进行操作。
http://i2.运维网.com/images/blog/201808/24/f3b35bd3feb9afc0bb154a59918d8d85.png
当提示镜像创建成功时,我们可以通过docker images 来查看是否已经生成镜像
http://i2.运维网.com/images/blog/201808/24/4b01dea845c4618f8b10cf0d9dd12c9f.png
通过图片说明我们已经成功生成了一个镜像文件
此时可以已后台的方式利用创建好的镜像启动一个容器
docker run --name test2 -dp 33333:8080  tomcat_test:9 ,创建完毕后可以通过docker images查看是否成功
http://i2.运维网.com/images/blog/201808/24/589ca1c0f6e4f3147e007d06c0410cc0.png
此时容器已经创建成功,可以通过web进行访问
http://i2.运维网.com/images/blog/201808/24/9ebf173fdf27db02f835eec92efeac55.png
通过浏览器我们可以清楚的看到tomcat已经启动,至此方法二已经讲解完毕
方法三:
这种方法类似于常规的系统中的tomcat安装,我们需要先从docker hub上下载已经tomcat的基础镜像并通过这个镜像创建一个容器后,我们直接在容器内进行tomcat的安装。
创建镜像的命令是 docker run  -ti  --name tomcat centos:latest ,通过这条命令可以创建容器并进入容器,然后可以在容器里面根据正常tomcat安装的步骤进行安装,待安装完毕后通过exit退出容器,并用以下命令生成镜像
docker commit + 容器名  +要生成镜像名称:标签 即可生成镜像。
需要特别注意的是强烈不介意通过这种方式生成镜像,个人建议通过第二中方法来生成镜像,至于为何不建议通过此种方法生成镜像,已经在之前的docker 常用命令一文中说明,此处就不再进行说明了。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-641929-1-1.html 上篇帖子: MyEclipse2015+Tomcat+MAVEN+SVN项目环境搭建 下篇帖子: Tomcat 基于域名的虚拟主机设置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表