Java为例
以前的步骤:
- SpringBoot打包成可执行jar
- 把jar包上传给服务
- 服务器运行
java -jar jar包名
使用docker:
所有机器都安装Docker,任何应用都是镜像,所有机器都可以运行
步骤:
- java程序打包成jar包
- 创建Dockerfile文件,写入以下内容
# 基础环境,是程序运行所需的基础镜像,这里选用linux的镜像
FROM openjdk:8-jdk-slim
# 标签,表示作者
LABEL maintainer=warson
# 这里表示复制 target/*.jar 到容器的/app.jar
# *.jar的写法是方便,这需要我们确保target目录下只有一个jar包
COPY target/*.jar /app.jar
# 启动容器的命令,表示运行app.jar,因为上面已经复制了一个jar包到容器的/app.jar包了
ENTRYPOINT ["java","-jar","/app.jar"]
- 构建镜像 在Dockerfile所在的目录下执行:
# -t 表示构建的镜像名以及版本
# . 表示根目录,COPY命令以根目录去找target/*.jar,所以我们写 . 表示我们需要确保target目录是与Dcokerfile是在同一目录的
docker build -t java-demo:v1.0 .
- 启动镜像 构建完镜像后,就可以使用docker images命令去查看本地的镜像了。 启动镜像创建容器:
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
- 推送镜像 只要把当前的镜像推送到自己的dockerhub仓库,那么以后就可以随时地拉取这个镜像,运行这个java程序了,不需要再重新配置java环境。
# 登录docker hub
docker login
#给旧镜像起名,leifengyang要改为你自己的github账号
docker tag java-demo:v1.0 leifengyang/java-demo:v1.0
# 推送到docker hub,leifengyang/java-demo:v1.0就是完整的dockerhub仓库地址,docker就是根据这个地址来推送的
docker push leifengyang/java-demo:v1.0
# 别的机器
docker pull leifengyang/java-demo:v1.0
# 别的机器运行
docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0
以GO为例
TODO...