其他文章:
----------------------------------------------------------------
九、IDEA整合Docker
实战springboot微服务打包镜像
- 构建springboot项目并打包为jar包 demo-0.0.1-SNAPSHOT.jar
- 创建 Dockerfile
FROM java:8
COPY *.jar /app.jar
CMD ["server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
- 生成镜像
#1.将.jar 包和 Dockerfile 一起上传到 虚拟机
[root@kk home]# cd idea/
[root@kk idea]# ls
demo-0.0.1-SNAPSHOT.jar Dockerfile
#2.构建镜像
[root@kk idea]# docker build -t my-idea-demo .
Sending build context to Docker daemon 17.06MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar
---> 103c736032ff
Step 3/5 : CMD ["server.port=8080"]
---> Running in 80643f3cb072
Removing intermediate container 80643f3cb072
---> f6ac4cc5eb46
Step 4/5 : EXPOSE 8080
---> Running in f931831d5f80
Removing intermediate container f931831d5f80
---> 4d07f342bb21
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
---> Running in b1f581f7450d
Removing intermediate container b1f581f7450d
---> 5666b3ab4eec
Successfully built 5666b3ab4eec
Successfully tagged my-idea-demo:latest
#3.查看新生成的镜像
[root@kk idea]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my-idea-demo latest 5666b3ab4eec 43 seconds ago 660MB
#4.运行容器
[root@kk idea]# docker run -d -P --name idea-hello my-idea-demo
4121f0b3b285bf7035302a6c54386423fc8c59179abde75038c4c7b51a8e23fd
[root@kk idea]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4121f0b3b285 my-idea-demo "java -jar /app.jar …" 17 seconds ago Up 12 seconds 0.0.0.0:49160->8080/tcp, :::49160->8080/tcp idea-hello
#5.访问
[root@kk idea]# curl localhost:49160
hello,docker...
[root@kk idea]# curl localhost:49160/test
{"timestamp":"2021-04-16T14:28:24.866+00:00","status":404,"error":"Not Found","message":"","path":"/test"}
以上是单机版的docker我们就会使用了。