docker部署项目
在部署项目时,每次需要配置不同的环境,如tomcat,jdk等等,过于麻烦,如果直接使用docker做好镜像后,启动docker容器即可方便启动项目。
docker配置tomcat
下载jdk、tomcat解压放到本地。
编写Dockerfile。
1 | # 使用centos作为基础镜像 |
上述就简单的配置生成镜像
命令docker build -t tomcatweb --rm=true .
生成镜像。
-t:用于生成镜像名
–rm:指定在生成镜像过程中删除中间产生的临时容器
.:表示当前目录下的Dockerfile
之后通过docker images
查看生成的镜像。
启动镜像docker run -d -p 8080:8080 tomcatweb
,之后会生成一个运行中的容器,通过命令docker ps
可查看容器。
-d:生成的容器后台运行
-p:表示本机8080端口与容器8080端口进行绑定,方便访问
容器其他操作:
docker ps -a:查看所有容器,包括停止的容器
docker stop [CONTAINER ID]:表示停止容器
docker start [CONTAINER ID]:启动容器
docker kill [CONTAINER ID]:直接杀死容器
docker rm [CONTAINER ID]:删除容器
docker rm $(docker ps -a -q):删除本机所有容器
启动后,通过curl localhost:8080
可查看到tomcat已经启动完成,也可以直接浏览器访问
docker-compose集成启动项目
现在公司的项目一般是直接运行在tomcat根目录下,一个项目一个tomcat。
所以需要删除tomcat解压后webapps下所有文件。
重新运行之前命令生成新的镜像。
编写docker-compost.yml文件
1 | # 这里不能为1,会出错 |
- 如果需要设置启动时JVM的参数,可以添加:environment: - JVM_OPTS=-Xmx12g -Xms12g -XX:MaxPermSize=1024m 用于配置jvm的参数。
ROOT.xml如下,tomcat启动后,部署的项目处于tomcat根目录
1 |
|
启动容器docker-compose up -d
,通过在本地logs目录下可以查看容器启动的日志。
也可以通过docker logs -f [CONTAINER ID]
查看容器的日志。
在启动容器后,如果需要进入容器,可以使用docker exec -it [CONTAINER ID] bash
进入容器,这样可以用于排除项目启动以及生成的容器是否有问题。
参考:
- docker官方文档
- docker之使用dockerfile配置tomcat、jdk环境
- 指定jvm参数