今天闲下来想起自己写的web项目部署上去玩下,之前有弄过docker,好久没弄忘记很多,所以弄了一次之后决定写下来,以后不记得可以翻下嘻嘻嘻。
1. 首先是去官网把docker下载下来安装。
https://docs.docker.com/docker-for-windows/install/
复制代码
2. 运行docker,拉取需要的tomcat镜像
docker pull tomcat:版本号 复制代码
如果没有指定的版本,默认拉取最新版本的
3. 可验证拉取是否成功
docker run -p 8888:8080 tomcat
复制代码
-p映射端口 接着的是端口号 自选的端口:docker容器端口
最后在浏览器打开localhost:8888 即可看到tomcat页面
4. 部署web应用
我部署的方式是直接挂载我主机上的应用目录
docker run --privileged=true -v 映射文件夹地址:/usr/local/tomcat/webapps -d -p 8888:8080 --name tomcat_demo tomcat
复制代码
--privileged=true 给docker挂载的权限
--name 生成的容器名字
-d 后台运行
-v 文件路径 前面的是你本机要映射文件路径 后面是tomcat目录【默认的】复制代码
到这里我们的项目已经挂载上去了,我们可以通过一些命名查看自己的项目
docker ps
// 查看docker正在运行的容器 PORTS可以看到正在运行的项目端口号 访问lcoalhost:8383即可
复制代码
5. 一些问题
在开始设置映射地址我写的tomcat目录是 /usr/local/tomcat/webapps/demo
这样导致的问题是请求地址时候要在后面加上demo, lcoalhost:8383/demo这样请求,但是请求到的页面是一片空白,我的css,js,html文件都没有加载进来,查看文件路径发现他们是没有demo路径的,所以要匹配好文件路径
因为我的文件夹名是jxhr,所以我打包好的web项目里面的js等静态文件路径是没问题的,所以我改变了映射tomcat目录,把demo去掉就没有问题了,直接 localhost:8383/jxhr 就可以访问到我的web项目。
6. 一些命令
我在访问路径的时候页面空白,我进去了我当然容器的目录中观看过是否请求问题,所以用到一些命令行,可以帮助你更快使用docker部署项目
docker exec -it 容器名称 /bin/bash // 查看容器目录复制代码
可以看到我们进入到tomcat目录了
cd webapps // 进入项目中查看复制代码
ls // 查看webapps 里面的文件复制代码
可以清晰看到里面的目录,帮助你更快找到自己路径问题。
docker images // 查看docker中全部的容器复制代码
docker ps // 查看已经启动的全部u容器复制代码
docker stop 61c08f8d9699 // 停止正在运行的容器, CONTAINER ID:61c08f8d9699,也可以是容器名称复制代码
docker rm 61c08f8d9699 // 删除容器复制代码
nginx部署其实也是差不多,下一次再继续记录。