实现目标:以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
来源:oschina
链接:https://my.oschina.net/u/3690153/blog/4288333