【Docker】简单的Docker安装以及部署SpringBoot项目

【Docker】简单的Docker安装以及部署SpringBoot项目

前置准备

  1. 需要CentOS 7 64位,虚拟机或物理机都可以。参考:安装CentOS7教程
  2. 需要一个SpringBoot项目,Demo级别即可。
  3. 了解yum,会简单使用和设置源。配置163yum源
  4. 会初步使用vi、vim指令,便于编写Dockerfile。

安装Docker

官方脚本自动安装

就像执行了本地的.sh脚本文件,只不过内容在网上请求到。
如下:

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

或国内daocloud

curl -sSL https://get.daocloud.io/docker | sh

如果是Linux学习者,建议走一遍手动安装过程。

手动安装

  1. 如果之前安装过docker,需要卸载之前的版本,执行:
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
  1. 安装所需软件包(此步骤最好已经设置yum源为国内源,方便快捷)
    安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  1. 安装特定版本的 Docker Engine-Community

列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序

$ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64  3:18.09.1-3.el7                     docker-ce-stable
docker-ce.x86_64  3:18.09.0-3.el7                     docker-ce-stable
docker-ce.x86_64  18.06.1.ce-3.el7                    docker-ce-stable
docker-ce.x86_64  18.06.0.ce-3.el7                    docker-ce-stable
  1. 通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
    此处建议安装18.x版本,若后续学习K8S,K8S的1.15版本则比较匹配docker18.x版本。
    注意:下列命令不可直接执行,需要你自定义版本
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
  1. 安装后启动Docker
$ sudo systemctl start docker
  1. 通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community
$ sudo docker run hello-world

出现下面反馈,则为安装成功
在这里插入图片描述

部署准备

  1. 需要将SpringBoot项目打包成jar包,如IDEA方式:
    打包
  2. 需要将jar文件传到CentOS系统一个自定义目录下,如/home/yourname/dockerDemo

部署

  1. ssh工具连上你的CentOS7主机,在刚刚拥有jar文件的/home/yourname/dockerDemo目录下操作
  2. 在/home/yourname/dockerDemo目录下编写Dockerfile文件
    执行:
vi Dockerfile

写入:

# Docker image for springboot file run
# VERSION 0.0.1
# Author: yourname
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER yourname <your@163.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD 你的jar包名.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
如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

  1. 制作镜像什么是docker镜像
    执行:
docker build -t 镜像名 .

-t 参数是指定此镜像的tag名,最后面有个"."点

在这里插入图片描述

  1. 启动容器,并测试
    执行:
 docker run -d -p 8090:8090 镜像名

若无报错信息,直接访问http://你的服务器ip地址:8090/
我的项目配置了swagger所以可以访问
部署完成。

猜你喜欢

转载自blog.csdn.net/thesprit/article/details/112625368