一、传统部署
以java为例,传统部署方案是把程序打包成jar包上传到服务器,然后使用java -jar 运行,不可避免的是服务器要安装jdk,如果有其他python、或者c++程序,那么还需要装一堆的基础环境,这是比较麻烦的,所以产生了容器化部署,比较流行的就是docker,不管是什么程序,我都打包成docker镜像,统一使用docker命令执行,方便部署,维护。下面看看,如何将一个程序打包成docker镜像,还是以java为例。
二、dockerfile打包java程序
1.本机写一个java小程序
@RestController
public class DockerFileController {
@GetMapping("/dockerFile")
public String dockerFile() {
return "this is a docker file test";
}
}
使用浏览器访问
2.编写Dockerfile文件
#构造的新镜像是基于哪个镜像
FROM openjdk:8-jdk-slim
#容器维护者
MAINTAINER dly
#递归创建文件夹
RUN mkdir -p /demo/jar
#复制jar包到指定文件夹
COPY target/demo-0.0.1-SNAPSHOT.jar /demo/jar
#workdir设置Dockerfile中指定的工作目录
WORKDIR "/demo"
RUN ls
#运行容器时执行的命令
CMD java -jar jar/demo-0.0.1-SNAPSHOT.jar
3.将jar包和Dockerfile上传到服务器
4.构建镜像
docker build -t java-demo:v1.0 .
# -t : 版本
eg: 最后的 . 不能省,表示在当前目录下执行
可以看到是构建成功的
5. 启动容器
docker run -d -p 8080:8080 java-demo:v1.0
启动成功
最后,使用公网ip加端口访问也是可以成功的,简单的demo演示结束。