基于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 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的dockerfile
docker 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.23MB
Step 1/5 : FROM java:8
---> d23bdf5b1b1b
Step 2/5 : ADD my-spring-0.0.5-SNAPSHOT.jar /springboot-docker.jar
---> f85be53e378b
Step 3/5 : EXPOSE 8080
---> Running in 44a75f4c1eef
Removing intermediate container 44a75f4c1eef
---> 8847ef1e428d
Step 4/5 : ENTRYPOINT ["java", "-jar", "/springboot-docker.jar"]
---> Running in 668296a66505
Removing intermediate container 668296a66505
---> 113002fdbed2
Step 5/5 : MAINTAINER Mickey
---> Running in 68364256f4f6
Removing intermediate container 68364256f4f6
---> 0459f6fb2f5d
Successfully built 0459f6fb2f5d
Successfully 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