[root@izuf688rg4xz5o3a7o9kd8z eureka]# ls
Dockerfile shop-eureka01-0.0.1-SNAPSHOT.jar shop-eureka02-0.0.1-SNAPSHOT.jar shop-eureka03-0.0.1-SNAPSHOT.jar
将上面三个jar包为SpringBoot项目打成的jar包,通过Dockerfile将jar包打成镜像,以shop-eureka01-0.0.1-SNAPSHOT.jar为例
Dockerfile:
FROM java:8-alpine
MAINTAINER Hxt
WORKDIR eureka
ADD shop-eureka01-0.0.1-SNAPSHOT.jar eureka01.jar
EXPOSE 7001
ENTRYPOINT ["java","-jar","eureka01.jar"]
1)、Dockerfile常用指令
-
FROM:指定base镜像
-
MAINTAINER:设置镜像的作者,可以是任意字符串
-
COPY:将文件从build context复制到镜像
COPY支持两种形式:1.COPY src dest
2.COPY [“src”, “dest”]
注意:src只能指定build context中的文件或目录
-
ADD:与COPY类似,从build context复制文件到镜像。不同的是,如果src 是归档文件(tar, zip, tgz, xz等),文件会被自动解压到dest
-
ENV:设置环境变量,环境变量可被后面的指令使用
-
EXPOSE:指定容器中的进程会监听某个端口,Docker可以将该端口暴露出来
-
VOLUME:将文件或目录声明为volume
-
WORKDIR:为后面的RUN, CMD, ENTRYPOINT, ADD或COPY指令设置镜像中的当前工作目录
-
RUN:在容器中运行指定的命令
-
CMD:容器启动时运行指定的命令
Dockerfile中可以有多个CMD指令,但只有最后一个生效。CMD可以被docker run之后的参数替换 -
ENTRYPOINT:设置容器启动时运行的命令
Dockerfile中可以有多个ENTRYPOINT指令,但只有最后一个生效。CMD或docker run之后的参数会被当做参数传递给ENTRYPOINT
2)、构建镜像
[root@izuf688rg4xz5o3a7o9kd8z eureka]# docker build -t eureka01:v1 .
-t参数后面跟上想要的镜像名称
3)、运行Docker镜像
[root@izuf688rg4xz5o3a7o9kd8z eureka]# docker run -d --net=host -p 7001:7001 --name eureka01 eureka01:v1
-d:容器后台运行
–net:网络模式
-p:容器暴露的端口
–name:容器名称
Docker的run命令详解参考:https://www.cnblogs.com/yfalcon/p/9044246.html