springboot打包docker镜像部署
环境准备
机器 vultr一台,centos7
资源下载
jdk8mavengit yum install gitdocker yum install docker-io环境搭建
jdk,maven
1.解压资源tar -zxvf jdk8.tar.gztar -zxvf apache-maven-3.3.9-bin.tar.gz2.配置环境变量vim /etc/profileexport JAVA_HOME=/root/jdk8export MAVEN_HOME=/root/apache-maven-3.3.9export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH3.资源生效source /etc/profile
项目准备(使用现有项目)
pan-search-springboot pom.xml新增docker配置
<plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>0.4.3</version><configuration><imageName>${docker.image.prefix}/${project.artifactId}</imageName><dockerDirectory>src/main/docker</dockerDirectory><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></plugin>
配置解释
imageName镜像名称dockerDirectory Dockerfile位置resources 指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入。本例,只需一个 jar 文件 Dockerfile定义 /src/main/docker/DockerfileFROM frolvlad/alpine-oraclejdk8:slimVOLUME /tmpADD docker-spring-boot-1.0.0.jar app.jarENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
配置解释
VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录项目的 jar 文件作为 "app.jar" 添加到容器的ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 "/dev/urandom" 作为 Entropy Source构建dockerImage
项目根路径下执行mvn package docker:build
运行docker
docker run -p 8080:8080 -t kite/pan-search-springboot
打包上传
账号注册
register
登陆
docker login
上传
docker push kitesweet/pan-search-springboot
拉取镜像
docker pull kitesweet/pan-search-springboot
常用docker命令
查看docker psdocker ps -a为查看所有的容器,包括已经停止的删除所有容器docker rm $(docker ps -a -q)删除单个容器docker rm <容器名orID>停止、启动、杀死一个容器docker stop <容器名orID>docker start <容器名orID>docker kill <容器名orID>查看所有镜像docker images查看容器日志docker logs -f <容器名orID>