springboot项目后端镜像制作
1. 前置条件:已经安装好docker,后端jar包:app.jar,Dockerfile
2. Dockerfile基本格式如下:
FROM openjdk:8-alpine ### 后端依赖的jdk MAINTAINER auth "xxx@cmss.chinamobile.com" ###维护者联系方式 EXPOSE 80 ###暴露出来的后端服务端口 RUN mkdir -p /app COPY app.jar /app/ ENTRYPOINT ["java","-jar","/app/app.jar"] #镜像运行时执行的命令
3. 将app.jar和Dockerfile放置在同一目录下,执行docker命令生成docker镜像
docker build -it app-project:20210331
app-project:生成的镜像名称
20210331:镜像标签
4. 生成镜像后,运行镜像就可以启动容器,运行镜像的命令为:
docker run -it -d -p 8080:80 --name app-contanier app-project:20210331 .
-d: 启动容器后不进入容器
-p :设置启动容器的外部访问端口,8080为外部访问端口,80为容器服务暴露端口
--name: 启动的容器名称
5. 启动容器后可以通过执行一下命令进入容器,可以查看日志等:
docker exec -it app-container /bin/bash
6. 停止容器运行:
docker stop app-container
7. 删除容器:
docker rm app-container
8. 查询当前所有的容器:
docker ps -a
9. 查询所有的镜像
docker images
10. 删除镜像
docker rmi app-project
11. 数据卷挂载,删除容器也会将容器中的数据一同删除,使用数据卷挂载可以储存数据,在启动容器时使用 -v 进行数据卷挂载
docker run -it -d -p 8080:80 -v /root/app:/app --name app-container app-project:20210331
将容器内的app文件夹挂载到宿主机的/root/app上,就可以直接在宿主机的/root/app上查看容器/app中的数据
sprintboot前端镜像制作
1. 前置条件:前端代码:dist, nginx配置:nginx.conf, Dockerfile, ssl证书
2. Dokerfile基本内容格式如下:
FROM nginx:1.18.0 MAINTAINER auth "xxxg@cmss.chinamobile.com" RUN mkdir -p /app/html COPY ./dist /app/html/ COPY nginx.conf /etc/nginx/nginx.conf COPY server.crt /etc/nginx/ssl/server.crt #https证书,要与nginx.conf中路径一致 COPY server.key /etc/nginx/ssl/server.key EXPOSE 8085 ### 前端服务暴露出来的端口
3. 注意nginx.conf中后端访问的端口应该是后端容器的外部访问端口,对应上面后端镜像制作中的8080,后端服务ip应该后端服务容器部署的主机ip
4. 制作前端镜像命令如下:
docker build -it app-dist .
5. 运行前端镜像,启动容器
docker run -it -p 18085:8085 --name dist-container app-dist
6. 在本机配置host,如本次项目前端服务域名为: xxx.ecloud.10086.cn,则配置host为:前端镜像部署主机ip xxx.ecloud.10086.cn
7. 在本机使用浏览器打开访问路径就可以访问该项目