请先查看上篇文章:linux下 docker的安装
1、首先准备一个可以正确运行的jar文件
我这里准备了一个名叫springcloud-eureka.jar的文件,我们测试如何使用dockerfile将jar文件打包成docker镜像。
2、编写dockerfile文件
FROM java:8-jre-alpine
MAINTAINER oowoo oowoo@oowoo.cn
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone #设置时区
COPY target/eureka-0.0.1-SNAPSHOT.jar /eureka-0.0.1-SNAPSHOT.jar
ENTRYPOINT ["sh","-c", "java -Dserver.port=1010 -Xms300m -Xmx300m -jar /eureka-0.0.1-SNAPSHOT.jar"]
①、FROM: 格式为FROM image或FROM image:tag,并且Dockerfile中第一条指令必须是FROM指令,且在同一个Dockerfile中创建多个镜像时,可以使用多个FROM指令
②MAINTAINER oowoo oowoo@oowoo.cn #格式为MAINTAINER user_name user_email,指定维护者信息
③、RUN :这里仅仅只是设置一个时区
④、COPY: 格式为:COPY src desc 复制本地主机src目录或文件到容器的desc目录,desc不存在时会自动创建
⑤、ENTRYPOINT:格式有两种:
ENTRYPOINT ["executable","param1","param2"]
ENTRYPOINT command param1,param2 会在shell中执行。
用于配置容器启动后执行的命令,这些命令不能被docker run提供的参数覆盖。和CMD一样,每个Dockerfile中只能有一个ENTRYPOINT,当有多个时最后一个生效。
3、创建镜像
在dockerfile文件所在目录执行以下命令:
docker build -t springcloud-eureka ./
springcloud-eureka是随意取的自定义镜像名称,如果看到如下内容,说明镜像创建成功。
4、查看镜像列表
docker images
镜像列表如下:
5、启动镜像
docker run -it -p 999:1010 springcloud-eureka/ /bin/bash
-p 指定对外访问的端口和容器端口,999是对外访问的端口,1010是容器端口
6、查看docker启动的镜像进程
docker ps -a
已经启动的进程列表如下:
7、访问镜像
http://ip:999
我这里启动的是springcloud服务注册中心eureka,访问到的页面如下: