参考自 https://blog.csdn.net/oabcde12/article/details/79268429
背景
Docker 安装完成后,便开始了Docker 之旅,本次从在Docker 安装Tomcat中,主要的目的是接触Docker 命令,从而达到对Docker 的学习;
Docker 安装Tomcat
使用docker search tomcat 进行搜索 tomcat 镜像
使用docker pull 镜像名称(我下载的是docker pull consol/tomcat-7.0)
下载后使用 docker images 进行查看下载的镜像
启动Tomcat
普通启动
-
使用 docker run -name tomcat -P -d consol/tomcat-7.0
命令说明:name tomcat 定义容器的名字为 tomcat -P 把容器的端口随机映射到本机的一个端口 -d 后台运行容器 consol/tomcat-7.0 镜像的名字
-
docker ps -a 查看启动的命令
0.0.0.0:8080->8080/tcp
这个说明docker中的8080端口映射到了本机的8080端口 -
启动成功后,本地访问localhost:8080 .可以发现可以正常访问,及启动成功
-
使用交互,进入容器,查看tomcat 路径 docker exec -it tomat /bin/bash
命令说明:
-it 是进入交互模式。
tomat 是你容器的名字
挂载启动
- 仔细看图中的命令。得知 /opt/tomcat 就是tomcat的路径啊,还有个apache-tomcat-7.0.62不知是什么鬼,但是测试这两个的内容是一样的。
那就先把docker中tomcat的conf webapps logs 这三个目录拷贝到本机一份吧。
在我的 /Users/apple/ 路径下有个空目录 my-tomcat,把它拷贝到这里来。
docker cp tomat:/opt/tomcat/conf /Users/apple/tomcat
docker cp tomat:/opt/tomcat/webapps /Users/apple/tomcat
docker cp tomat:/opt/tomcat/logs /Users/apple/tomcat
命令说明:
tomat 容器的名字
/opt/tomcat/conf 容器中tomcat的conf目录(上面已经得到了tomcat的目录就是/opt/tomcat)
/Users/apple/tomcat 本机的一个目录(是空的)
- 将文件拷贝到本地后,使用映射启动tomcat
docker run -P --name tomcat7 -v /Users/apple/tomcat/webapps:/opt/tomcat/webapps -v /Users/apple/tomcat/conf:/opt/tomcat/conf -v /Users/apple/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中确认一下。
重启,删除 服务
停止服务:docker stop tomcat
重启服务:docker restart tomcat
删除服务:docker rm tomcat