手记

Docker学习(四)Docker搭建Tomcat

前言

涉及到的命令,可以参考上一篇Docker学习(三)认识Docker和常用命令

可以参考docker官方网站

业务场景

公司采购了一台新的硬件服务器,领导说,BK这台服务器用tomcat搭建一台web服务器吧,这个任务看起来简单,但是很繁琐

  • 安装linux系统
  • 下载jdk,tomcat,
  • 安装jdk,配环境变量
  • 安装tomcat

即使对于一个老司机,也要花挺长时间,但是使用docker可以很大的简化这个过程

查看可用镜像

在docker官网搜索tomcat组件,在每个tag中可以看到具体使用的JDK版本和Tomcat版本
tocmat可用版本

搭建tomcat

  • 下载tomcat镜像
    docker pull tomcat:latest

  • 查看本地镜像
    docker images

启动tomcat

docker run -p 8888:8080 -d tomcat
-d 是后台运行
-it 是interaction 交互命令
-p 8000:8080 进行端口绑定, 8000宿主机端口,8080是容器中tomcat默认的端口

docker ps
docker exec -it 257dcfd4ea5e /bin/bash 进入tomcat docker容器内部

停止tomcat

  • 查看运行的docker容器
    docker ps
  • 方法一
    docker stop 容器编号
    docker rm 容器编号
  • 方法二
    docker rm -f 容器编号

开发测试时候可以使用, 线上环境不建议,避免出现意料之外的问题

移除镜像

  • docker images
  • docker rmi image:tags 如果有当前镜像创建的容器,需要先移除容器
    docker rmi -f image:tag 强制移除镜像,生产环境不建议使用

附录

tomcat为什么要进行端口绑定

因为tomcat启动之后,默认的端口是8080,是容器对外暴露的端口客户端访问是访问宿主机的ip和端口,无法直接访问容器暴露的端口,所以需要将宿主机的端口与容器暴露的端口进行绑定,才可以从浏览器访问

-p 8000:8080 端口映射之后

这种端口绑定的方式,提供了一种好处,
只要客户端知道宿主机和端口,内部的容器可以随便更换,比如说现在的tomcat性能跟不上,我们可以更换成jetty,只要保证外侧的端口映射8000不变,就可以无缝迁移

端口映射之后可以通过命令netstat -tulpn查看到,后台启了一个docker-proxy进行请求转发

拉取镜像时,不写版本默认是什么版本

在拉取镜像时不写版本号,默认是latestlatest的定义实际上不是最新的,而是使用最多的版本

tag怎么选择

  • 镜像名称和组件名一样的是官方提供 ,右侧有它的starts 表明发前版本的热度
  • 如果前面有/,则是第三方发布的, 除非你对这个项目特别了解,否则最好不要使用,因为我们不确定里面是否有恶意代码

写在最后

使用 docker搭建环境很方便,对于运维工作的效率有很大的提升,安装redis , nginx ,mysql 方法都类似,相关学习可以到**docker官网**搜索相关组件,在组件详情页中都有相关的命令跟着,官网命令可以一步一步的学习

相关文章会首发公众号,可以关注公号albk,关注后可以获取大量学习视频

期望热爱技术的你一起来交流,获取最新资料和学习资源,可以关注公众号albk, 个人博客 !

0人推荐
随时随地看视频
慕课网APP