这篇文章是对上篇的延续,对springboot项目进行部署。
本系列文章:
使用 Docker 部署 Spring Boot之项目的构建
使用 Docker 部署 Spring Boot之项目的部署
需要大家安装jdk,maven环境,以及docker容器,本文不对环境详细描述。
这里使用上篇中构建的项目,将项目 boot2.0拷贝服务器中,并进入项目路径下进行打包,我们使用 DockerFile 构建镜像。
[root@localhost workspace]# cd boot2.0
[root@localhost boot2.0]# ll
total 20
-rw-r--r--. 1 root root 6468 Apr 21 11:24 mvnw
-rw-r--r--. 1 root root 4994 Apr 21 11:24 mvnw.cmd
-rw-r--r--. 1 root root 2822 Apr 21 11:24 pom.xml
drwxr-xr-x. 4 root root 30 Apr 21 11:24 src
drwxr-xr-x. 9 root root 229 Apr 21 12:18 target
第一次构建可能有点慢,当看到以下内容的时候表明构建成功:
[INFO] Using authentication suppliers: [ConfigFileRegistryAuthSupplier]
[INFO] Copying /usr/local/workspace/boot2.0/target/boot2.0-0.0.1-SNAPSHOT.jar -> /usr/local/workspace/boot2.0/target/docker/boot2.0-0.0.1-SNAPSHOT.jar
[INFO] Copying src/main/docker/Dockerfile -> /usr/local/workspace/boot2.0/target/docker/Dockerfile
[INFO] Building image springboot/boot2.0
Step 1/4 : FROM openjdk:8-jdk-alpine
---> 224765a6bdbe
Step 2/4 : VOLUME /tmp
---> Using cache
---> dfdf6620266f
Step 3/4 : ADD boot2.0-0.0.1-SNAPSHOT.jar app.jar
---> 9a42c2f71861
Removing intermediate container 2f6115530f72
Step 4/4 : ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar /app.jar
---> Running in 0c882503bfef
---> 331cbf8ec0b5
Removing intermediate container 0c882503bfef
Successfully built 331cbf8ec0b5
Successfully tagged springboot/boot2.0:latest
[INFO] Built springboot/boot2.0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 41.011 s
[INFO] Finished at: 2018-04-25T13:40:51+08:00
[INFO] ------------------------------------------------------------------------
使用docker images
命令查看构建好的镜像:
[root@localhost boot2.0]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot/boot2.0 latest 331cbf8ec0b5 About a minute ago 138MB
springboot/boot2.0就是我们构建好的镜像,下一步就是运行该镜像
[root@localhost boot2.0]# docker run -p 8080:8080 --name kl_boot -t springboot/boot2.0
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.0.RELEASE)
2018-04-25 05:45:53.785 INFO 1 --- [ main] com.example.boot.Application : Starting Application v0.0.1-SNAPSHOT on c03eba483c5c with PID 1
docker run -p 8080:8080 --name kl_boot -d springboot/boot2.0
使用postman访问服务
至此,说明使用 Docker 部署 Spring Boot 项目成功!
查看容器 docker ps
[root@localhost boot2.0]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2323fecbf610 7c971aa5f75c "java -Djava.secur..." 4 days ago Exited (143) 2 days ago kl_boot
启动容器 docker start kl_boot
[root@localhost boot2.0]# docker start kl_boot
kl_boot
天空,大家一起学习可好。
参考:
http://www.runoob.com/docker/docker-install-redis.html
http://www.ityouknow.com/springboot/2018/03/19/spring-boot-docker.html