Docker还不知道是什么的同学,请出门左转。
此处用的不是Dockerfile构建Tomcat,而是通过pull下载镜像来启动容器。
然后通过映射目录的方式,以后只要把war包放到映射目录里,Docker会自动拷贝一份到容器中,是不是很方便呢。
docker search tomcat
此处我选择的是consol/tomcat-7.0这个镜像。
怎样下载consol/tomcat-7.0这个镜像呢。使用以下命令。
docker pull consol/tomcat-7.0
下载完成后查看下载的镜像。
docker images
此处我们用到的命令是映射目录方式(下面命令请勿执行)。
docker run --name tomcat -p 8080:8080 -v $PWD/test:/usr/local/tomcat/webapps/test -d tomcat
命令说明:
-p 8080:8080:将容器的8080端口映射到主机的8080端口
-v $PWD/test:/usr/local/tomcat/webapps/test:将主机中当前目录下的test挂载到容器的/test
--name tomcat 容器的名字
现在问题来了,我怎么知道docker中Tomcat在哪个路径呢(/usr/local/tomcat这就是tomcat的路径吗?)。我怎么映射呢。
1:可以查看docker hub 上的tomcat的官方说明(有详细的说明)。
2:自己实践得知。
这里就实践得知吧。
先快速用tomcat镜像创建出一个容器,然后进入容器查看不就行了。
创建一个tomcat容器,这个容器是临时的,一会删掉。
docker run --name my-tomat -P -d consol/tomcat-7.0
命令说明:
--name my-tomat 定义容器的名字为 my-tomat
-P 把容器的端口随机映射到本机的一个端口
-d 后台运行容器
consol/tomcat-7.0 镜像的名字
容器运行起来了,运行以下命令查看当前正在运行的容器。
docker ps
0.0.0.0:32769->8080/tcp
这个说明docker中的8080端口映射到了本机的32769端口
来访问一下试试吧。
http://localhost:32769/
tomcat已经运行起来了,现在就进去容器内部瞧瞧tomat在哪吧。
运行docker的交互命令。
docker exec -it my-tomat /bin/bash
命令解释
-it 是进入交互模式。
my-tomat 是你容器的名字
仔细看图中的命令。得知 /opt/tomcat 就是tomcat的路径啊,还有个apache-tomcat-7.0.62不知是什么鬼,但是测试这两个的内容是一样的。
那就先把docker中tomcat的conf webapps logs 这三个目录拷贝到本机一份吧。
在我的 /Users/apple/ 路径下有个空目录 my-tomcat,把它拷贝到这里来。
docker cp my-tomat:/opt/tomcat/conf /Users/apple/my-tomcat
命令说明
my-tomat 容器的名字
/opt/tomcat/conf 容器中tomcat的conf目录(上面已经得到了tomcat的目录就是/opt/tomcat)
/Users/apple/my-tomcat 本机的一个目录(是空的)
现在就把容器中tomcat的conf目录拷贝到本机了。查看一下本机的conf目录,里面的配置文件是不是都有了呢。
接下来拷贝webapps和logs目录。
docker cp my-tomat:/opt/tomcat/webapps /Users/apple/my-tomcat
docker cp my-tomat:/opt/tomcat/logs /Users/apple/my-tomcat
现在我本机的my-tomcat文件夹里有webapps conf logs 这三个目录了。
下面的命令是真正的通过映射来启动Tomcat了。
docker run -P --name tomcat7 -v /Users/apple/my-tomcat/webapps:/opt/tomcat/webapps -v /Users/apple/my-tomcat/conf:/opt/tomcat/conf -v /Users/apple/my-tomcat/logs:/opt/tomcat/logs -d consol/tomcat-7.0
命令说明。
-v 把docker中的webapps logs conf 目录分别映射到本机的my-tomcat中对应的目录中
这样映射有什么好处呢,就是把war包扔到本机的my-tomcat/webapps中就可以了啊 ,docker自动会部署到tomcat中的。修改了本机conf中的配置文件,docker中的配置文件也会立即生效的欧,因为已经映射了嘛,不相信的话你可以修改一下,然后进入docker中确认一下。
把之前的my-tomat容器删掉。
停掉容器
docker stop my-tomat
删除容器
docker rm my-tomat
先把把war包扔到本机的webapps的映射目录,就可以访问这个项目了欧,如果访问失败,那就自己重启一下tomcat容器。
docker restart tomcat7
费这劲干嘛,直接本机装Tomcat不就行了,这样的疑问的同学请出门左转,装tomcat只是docker的冰山一角,这只是抛砖引玉,现在的企业都已经用docker部署各种应用了,你还在等什么呢。