首先拉取tomcat的镜像docker search tomcat
通常选取start最高的 docker pull tomcat
接下来要做准备工作,这里准备两个tomcat,目的是为了将容器中的配置文件路径和webapps路径映射出来,方便管理维护
解压tomcat
tar -zxvf apache-tomcat-8.0.52.tar.gz
然后先上传web端war包到 第一个tomcat的webapps下面
然后构建tomcat容器docker run -it --name charge-service --net=host -v /usr/local/apache-tomcat-8.0.52/webapps:/usr/local/tomcat/webapps -v /usr/local/apache-tomcat-8.0.52/conf/server.xml:/usr/local/tomcat/conf/server.xml -d tomcat
命令解析:
-it:运行一个在后台执行的容器,同时,还能用控制台管理
—name:创建容器的名字
—net=host:注意这个是关键 ,—net=host意思是让容器跟宿主机使用相同的ip,容器不会虚拟出自己的网卡,ip,这里配置这个的原因是因为,如果你采用默认模式创建容器,就会连不到你在虚拟机启动的zookeeper
-v:该命令等于是linux命令的软连接 /usr/local/apache-tomcat-8.0.52/webapps:/usr/local/tomcat/webapps.冒号左边是虚拟机的tomcat的war包存放地址,右边是容器内的war包存放在tomcat中的地址,意思就是让容器内的tomcat的war包存放地址,指向虚拟机的tomcat的存放地址,这样容器内的tomcat启动的时候实际上启动的是在虚拟机存放的war包
-v /usr/local/apache-tomcat-8.0.52/conf/server.xml:/usr/local/tomcat/conf/server.xml 这里同上 是为了指向虚拟机的tomcat的配置文件 ,这样就可以直接在本地该配置 不需要动容器内的tomcat
-d docker.io/tomcat :-d 的意思是用docker.io/tomcat镜像创建容器,也就是之前咱们下载的tomcat镜像
执行完会返回一个唯一的id
查看tomcat启动日志
docker logs -f 容器id 查看tomcat启动日志