docker部署项目项目并实现反向代理

感情迁移 提交于 2020-08-04 16:35:53

实现目标:以springboot项目为例,在不更新镜像或者容器的前提下 通过挂载的方式实现更新项目

新建一个目录 hgirl 用于放置制作镜像的文件


拉取项目并并打包

从git上拉取已有的项目
git clone https://gitee.com/yang_638000/hgirl.git
进入项目根目录并打包
mvn package
将打包好的jar文件copy到hgirl目录下

编写dockerfile文件

在hgirl目录下
vi dockerfile 
写入如下信息:
FROM java:8
EXPOSE 8180
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/data/hgirl.jar"]

制作镜像文件

docker build -t hgirl . 
镜像的名字叫做 hgirl

创建一个hgirl实例并实现挂载目录

docker run --name hgirl -it -v /docker/hgirl:/data -d -p 8180:8180 hgirl
-- name hgirl 表示指定容器名字叫做hgirl 并将宿主机的​​​/docker/hgirl目录与容器的/data目录映射起来 项目端口8180映射到容器的8180端口 
通过 docker ps 查看是否启动成功

查看效果

在浏览器输入ip+端口号8180+项目名

反向代理设置

在nginx的配置文件中加入如下  配置

location ~ /hgirl/ {
       proxy_pass  http://123.116.42:8180;
    }

然后重启nginx 

docker restart nginx

查看效果 在浏览器 输入ip + 项目名 

这样 如果更新了项目 我们只需要将打包后的jar文件 覆盖 /docker/hgirl 目录下的hgirl.jar 文件 然后重启 该容器就可以了
测试:我们在制作镜像的时候加载的是hgirl.jar 文件 ,我们将/docker/hgirl下的hgirl.jar修改为hello.jar 然后重启容器 在浏览器访问出现了error 如下

再将其修改为hgirl.jar 在重启容器 就正常了 这表示挂载也是正常的

over

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!