docker容器中tomcat操作和部署Java应用(Docker容器挂载宿主机文件)
一、Docker安装
参考: https://blog.csdn.net/muriyue6/article/details/82865201
二、拉取tomcat镜像
1.搜索tomcat镜像信息
[root@localhost config]# docker search tomcat
2.拉取对应的不同版本的tomcat镜像
[root@localhost config]# dokcer pull tomcat:7
tomcat:7是指定拉取的tomcat版本号, 如果没有指定会默认拉取最新的版本.
3.运行tomcat镜像
[root@localhost config]#docker run --name mytomcat -p 8888:8080 tomcat:7
-p 后面为端口映射:宿主主机端口:docker容器端口
--name 自定义tomcat容器名称
三、部署Java应用
部署应用有两种方法,分别是:
1.挂载宿主主机应用目录
我们的应用目录(也就是WAR包的位置): /mnt/sdb1/data/webapps/atsys-server-community
[root@localhost data]# docker run --privileged=true -v /mnt/sdb1/data/webapps/atsys-server-community:/usr/local/tomcat/webapps/ -v /mnt/sdb1/data/logs/community/:/usr/local/tomcat/logs -v /mnt/sdb1/data/webapps/config:/usr/local/tomcat/conf_app/ -p 8089:8080 --rm -e JAVA_OPTS="-Dconfig.path=/usr/local/tomcat/conf_app/community -Dsso_config=/usr/local/tomcat/conf_app/sso.properties -Xmx512m" -v /etc/localtime:/etc/localtime --name community -d tomcat
参数说明:
–privileged=true 是授予docker挂载的权限,当操作者执行docker run --privileged时,Docker将拥有访问主机所有设备的权限,同时Docker也会在apparmor或者selinux做一些设置,使容器可以容易的访问那些运行在容器外部的设备
/mnt/sdb1/data/webapps/atsys-server-community 需要挂载应用的目录
/usr/local/tomcat/webapps/ docker容器tomcat目录
-p 端口映射
–name 容器名称
-d 运行的tomcat镜像
--rm 容器退出时就能够自动清理容器内部的文件系统
JAVA_OPTS里边的参数是tomcat容器里的目录, 如果tomcat容器里不存在某一个目录的时候在执行docker run命令的时候会自动创建那个不存在的目录
-v 不仅可以挂载映射目录,也可以只挂载映射一个文件
-e 设置环境变量
2.拷贝Java应用到tomcat容器应用目录下
* 启动tomcat镜像:
[root@localhost config]#docker run --name mytomcat -p 8888:8080 tomcat:7
* 拷贝Java应用到tomcat容器目录下
[root@localhost config]#docker cp demo.war mytomcat:/usr/local/tomcat/webapps
mytomcat为指定的tomcat容器名.
* 查看tomcat容器目录结构:
[root@localhost config]#docker exec -it mytomcat /bin/bash
[root@localhost config]#cd webapps
进入后可以清晰看到tomcat在容器中的目录结构,
mytomcat为启动时指定的容器名。
https://blog.csdn.net/shenshucong520/article/details/77947372