目录
docker rm -f $(docker ps -aq)
方法一
docker run -itd \
--name t1 \
-p 8080:8080 \
--mount source=v1,target=/usr/local/tomcat/webapps \
tomcat:8.5.20
方法二
docker start c1
docker exec -it c1 bash
挂载和数据卷的区别:数据卷和替换整个目录而挂载只会替换一个文件夹或者一个文件,所以挂载的使用性更高;数据卷替换所有文件后可能导致tomcat 或者 mysql无法使用 因为配置文件被全部替换
docker volume create v1
docker volume ls
docker volume inspect v1
docker volume rm v1
docker run -itd \
--name 容器名字 \
--mount source=数据卷名称,target=容器中的对应目录 \
镜像名称
实际例子
docker run -it \
--name c1 \
--mount source=v1,target=/testdir \
centos
docker inspect name
docker inspect v1
通过虚拟机端口映射可在虚拟机中运行tomcat,在本机访问tomcat端口
docker run -itd \
--name t1 \
-p 8080:8080 \
--mount source=v1,target=/usr/local/tomcat/webapps \
tomcat:8.5.20
虚拟机要开放端口
firewall-cmd --zone=public --add-port=8080/tcp
soft直接将webapps替换了
-v 可以挂载目录
-v 还可以单独挂载文件
挂载一个目录也是文件夹,先创建一个soft目录,mkidr soft
docker run -itd \
--name t1 \
-v /soft/usr/local/tomcat/webapps/oapro.war \
-p 8080:8080 \
tomcat:8.5.20
docker run -itd \
--name t1 \
-v /soft/oapro.war:/usr/local/tomcat/webapps/oapro.war \
-p 8080:8080 \
tomcat:8.5.20
想实现远程登录到容器内部的tomcat
实现在线部署项目
需要放入tomcat的用户信息 tomcat-user.xml 文件中
还要允许外部访问 webapps/manager/META-INF/context.xml
需要提前vi编辑tomcat-users.xml 文件,编辑用户信息admin;
删除context.xml 文件中的部分内容
docker run -itd \
--name t1 \
-v /soft/tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml \
-v /soft/context.xml:/usr/local/tomcat/webapps/manager/META-INF/context.xml \
-p 8080:8080 \
tomcat:8.5.20
注:mysql nginx的配置文件都要通过挂载的形式