Docker环境部署
作者:互联网
Django :全栈WEB框架
Flask:轻量级WEB框架
FastAPI:异步WEB框架
dockerfile环境部署流程
(1)开发编写完代码进行自测;
(2)编写Dockerfile来构建镜像;
(3)执行编写的Dockerfile的文件;
(4)执行Dockerfile文件成功后,也就是构建镜像成功;
(5)使用docker images,就可以查看到构建成功的镜像信息;
(6)把镜像导出,发送给测试同学;
(7)测试再导入,使用docker run来运行这个镜像,运行成功后,环境部署OK;
(8)开始测试验证。
2、演示开发行为
1、首先需要安装Maven并且配置环境变量
2、查看maven是否配置成功
3、Maven指令
(1)mvn clean 清空命令,现象就是target的文件夹就会消失;
(2)mvn package 把服务(应用程序)打包成jar文件,现象就是在项目的目录下出现了target的文件夹,打包成功的jar实际就是在target的文件夹里面。
一、Python环境部署
本案例主要使⽤Python语⾔,使⽤的WEB框架是Flask,然后来实现⼀个⽹站的部署过程,也就是说写好程序代后,开发dockerfile的代码,执⾏以及⽣成镜像,其他⼈基于该镜像使用docker run就可以在电脑跑起来对应的应⽤程序。
把app.py文件和Dockerfile文件放在同一目录下,并且py文件名必须是app.py(因为这个文件名在Dockerfile文件中已经写死了,并且每当.py文件变化一次 就要重新构建一次镜像)
Dockerfile文件
Dockerfile文件中是一些操作docker的指令
构建镜像
进入dockerfile目录下构建镜像(-t 后面是跟起的镜像名字,名字必须是小写)
docker build -t login .
运行容器:
构建成功后运行容器
验证容器(是否部署成功):
每次代码更改后都要重新部署环境
1、写完代码后,开始编写Dockerfile文件,构建,运行,环境部署OK
2、发现问题后,开发修改问题,修改问题言外之意等于就是更新了代码又得构建镜像
发布镜像
首先需要在先在https://hub.docker.com/地址注册⼀个账户,如果想把⾃⼰的镜像发布到dockerhub的地址,那么镜像的名称必须是username/imageName。如果不这样处理的话,进⾏push的时候,就会提示没有权限的操作,这点需要特别的注意。下⾯详细的演示发布镜像的过程,特别注意,邮箱必须要进⾏确认和验证。
步骤总结如下:
- 登录到dockerhub
- 查看已打包的镜像⽂件
- 修改镜像⽂件为符合push的名称(username/imageName)
- 发布镜像到dockerhub
部署Java
java技术栈的微服务开发框架
SpringBoot/SpringCloud /SpringCloudalibaba
部署springBoot
目录:(如果开发的java代码及目录如下图所示,我们通过ssh服务,进入到这个目录,执行mvn package 将java代码打包成jar包,打包成功后会生成target包,下面会有我们要的jar包,我们这时进入target目录, 执行java -jar app-0.0.1-SNAPSHOT.jar 这时环境就部署成功了)
mvn package 把java的代码打包成.jar(会在当前目录下 生成target 下有jar包)
直接部署
1、mvn clean package -Dmaven.test.skip=true docker:build
2、运行容器并访问
普通部署:
1、首先使用mvn package 把开发给的服务(应用程序)打包成jar文件
2、修改Dockerfile文件
FROM java:8
MAINTAINER 刘娜
VOLUME /tmp
RUN mkdir /app
COPY DBPlus-0.0.1-SNAPSHOT.jar /app/app.jar
WORKDIR /app
EXPOSE 8080
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
3、搭建环境
使用docker build -t apps .
4、搭建完成之后,运行「docker run --rm -p8081:8081 app:0.0.1-SNAPSHOT即可
5、运行网址:「http://localhost:8081/index」
标签:java,部署,jar,app,环境,镜像,Docker,Dockerfile,docker 来源: https://www.cnblogs.com/L-NaNa/p/16577604.html