美文网首页
docker笔记运行springBoot项目

docker笔记运行springBoot项目

作者: Binary_r | 来源:发表于2020-08-16 13:53 被阅读0次

1、Docker简介

概念:Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

2、Docker三要素

镜像
容器 是用镜像创建的运行实例

可以把容器看作简易版的Linux环境

仓库 是集中存放镜像文件的场所

2、CentOS7.+安装Docker

使用官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

设置阿里云的源
$ sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community

$ sudo yum install docker-ce docker-ce-cli containerd.io

启动 Docker

$ sudo systemctl start docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community

sudo docker run hello-world

3、运行第一个springBoot项目

使用Maven打包.jar
编写Dockerfile文件

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM java:8  或者  openjdk:8-jdk-alpine
# 作者
MAINTAINER shenhongtao12@aliyun.com
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD demo-demo-0.0.1.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["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

部署文件

image.png
将jar包和Dockfile文件放置在同一目录下
制作镜像
docker build -t 镜像名 .
注:千万别忘记后面有"."点
image.png
制作完成后通过docker images命令查看制作的镜像
image.png
启动容器
docker run -d -p 8080:8085 镜像名
-d参数是让容器后台运行 
-p 是做端口映射,此时将服务器中的8080端口映射到容器中的8085(项目中端口配置的是8085)端口
查看正在运行的容器

docker ps

image.png
停止服务

docker stop container ID

image.png

相关文章

网友评论

      本文标题:docker笔记运行springBoot项目

      本文链接:https://www.haomeiwen.com/subject/kgmtjktx.html