执行中会有类似输出:
执行完毕后,输入docker images可以查看当前本机的镜像,如下图,可以看到新增的镜像:
有了镜像,执行下面的命令就可以启动tomcat了: docker run --name=tomcat001 -p 8080:8080 -e TOMCAT_SERVER_ID=tomcat_server_001 -idt bolingcavalrytomcat:0.0.1
参数-e TOMCAT_SERVER_ID=tomcat_server_001的意思是在容器中设置了环境变量TOMCAT_SERVER_ID,值是tomcat_server_001
这时候再执行docker ps命令,可以看到启动的容器:
用浏览器访问localhost:8080,可以看到熟悉的页面:
现在tomcat也启动了,代码也写好了,可以试试在线部署了么?别急,还差最后一步,打开maven的安装目录,在conf目录下找到settings.xml文件,打开后在servers节点添加以下内容:
<server> <id>tomcat7</id> <username>account001</username> <password>password001</password> </server>这就是在tomcat的tomcat-users.xml文件中配置的用户和密码,这样执行maven插件的时候就能从此处取得对应的用户名和密码去tomcat上做操作了。
回到之前的那个web工程,用命令行进入pom.xml文件所在的目录,执行命令
mvn clean package -U -Dmaven.test.skip=true tomcat7:redeploy执行结果如下:
ok,tomcat7-maven-plugin插件已经帮我们把war部署到docker容器上去了,在浏览器输入
:8080/loadbalancedemo/hello?name=张三可以看到如下效果:
蓝色字体的tomcat_server_001就是我们启动tomcat容器时通过-e参数设置的环境变量,在HelloController中被成功取出并展示到jsp页面上,代码如下图:
以上通过对tomcat官方镜像的一些文件操作,得到了我们自己制作的镜像文件,并结合mvn插件实现了web应用在线部署在tomcat容器上的效果,下一次实战,我们会接着这个例子启动两个tomcat容器,再在前面放一个nginx,来实现负载均衡,过程中会学到docker compose和link的相关知识。
欢迎关注我的公众号