前言
涉及到的命令,可以参考上一篇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进行请求转发
拉取镜像时,不写版本默认是什么版本
在拉取镜像时不写版本号,默认是latest
,latest
的定义实际上不是最新的,而是使用最多的版本
tag怎么选择
- 镜像名称和组件名一样的是官方提供 ,右侧有它的starts 表明发前版本的热度
- 如果前面有
/
,则是第三方发布的, 除非你对这个项目特别了解,否则最好不要使用,因为我们不确定里面是否有恶意代码
写在最后
使用 docker搭建环境很方便,对于运维工作的效率有很大的提升,安装redis
, nginx
,mysql
方法都类似,相关学习可以到docker官网搜索相关组件,在组件详情页中都有相关的命令跟着,官网命令可以一步一步的学习
相关文章会首发公众号,可以关注公号albk,关注后可以获取大量学习视频