基于Dockerfile部署Springboot应用
DockerFile 常用命令
ADD 复制文件,格式:ADD
# 将当前目录下的my-spring-boot.jar包复制到docker容器的/目录下ADD my-spring-boot.jar /docker-spring-boot.jar
ENTRYPOINT 指定Docker容器启动时执行的命令 格式: ENTRYPOINT [“executable”, “param1”,”param2”…]
# 指定docker容器启动时运行jar包# 这里的jar包路径一定要和使用ADD命令复制的jar目录保持一致,否则在docker run启动容器时会找不到springboot的jar包ENTRYPOINT ["java", "-jar","/docker-spring-boot.jar"]
ENV 用于设置环境变量,格式:ENV
# mysql运行时设置root密码ENV MYSQL_ROOT_PASSWORD root
EXPOSE 声明容器暴露的端口(只声明不会打开端口)格式: EXPOSE …
# 声明容器暴露8080端口EXPOSE 8080
FROM 指定所需依赖的基础镜像,格式:FROM : 一个DockerFile文件中只允许一个FROM,如果有多个FROM则以最后一个为准
#指定镜像需要依赖java8的镜像,FROM java:8
MAINTAINER 指定容器的作者,格式:MAINTAINER
MAINTAINER miekcy
在容器创建过程中执行的命令,可以为容器创建前自定义一些行为,如:安装一些软件,创建一些文件等 格式: RUN RUN [“executable”, “param1”,”param2”…]
# 在容器创建过程中需要在/目录下创建一个my-spring-boot.jar的文件RUN bash -c 'touch /my-spring-boot.jar'
DockerFile 创建SpringBoot应用镜像
Dockerfile文件
#指定依赖的基础镜像FROM java:8#指定jar包拷贝到Docker容器的目录,不指定src目录时,jar包需要和Dockerfile文件在文件夹下ADD my-spring-0.0.5-SNAPSHOT.jar /springboot-docker.jar#声明端口EXPOSE 8080#指定Docker容器启动时运行的jar包ENTRYPOINT ["java", "-jar", "/springboot-docker.jar"]#指定维护者的名字MAINTAINER Mickey
打jar包
Dockerfile和jar包上传到linux服务器,注意这两个文件一定要在同一个文件夹下
# maven 命令打jar包mvn clean package -Dmaven.test.skip=true
创建docker镜像
# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的dockerfiledocker build -t my-spring-boot:0.0.1-SNAPSHOT .
成功输出信息
[root@localhost myspring-compose]# docker build -t my-spring:0.0.5-SNAPSHOT.jar .Sending build context to Docker daemon 26.23MBStep 1/5 : FROM java:8---> d23bdf5b1b1bStep 2/5 : ADD my-spring-0.0.5-SNAPSHOT.jar /springboot-docker.jar---> f85be53e378bStep 3/5 : EXPOSE 8080---> Running in 44a75f4c1eefRemoving intermediate container 44a75f4c1eef---> 8847ef1e428dStep 4/5 : ENTRYPOINT ["java", "-jar", "/springboot-docker.jar"]---> Running in 668296a66505Removing intermediate container 668296a66505---> 113002fdbed2Step 5/5 : MAINTAINER Mickey---> Running in 68364256f4f6Removing intermediate container 68364256f4f6---> 0459f6fb2f5dSuccessfully built 0459f6fb2f5dSuccessfully tagged my-spring:0.0.5-SNAPSHOT.jar
查看Docker镜像
docker images
创建并启动容器
docker run -p 8080:8080 \--name myspring \--link mysql:db \-d spring/my-spring:0.0.5-SNAPSHOT
