Spring Boot 2 в действии: объединение контейнеризации Docker

Spring Boot

docker&spring.png

1. Введение

DockerЧто это? Каковы преимущества? Что теперь, если вы не знаете или даже не используете его как разработчик, я чувствую, что вы устарели.DockerЭто виртуализированная контейнерная технология, предназначенная для создания интеграции приложений для непрерывной интеграции, контроля версий, переносимости, изоляции и безопасности. Это все официально. На самом деле, я думаю, что самое простое пониманиеDockerОн может создать изолированную среду приложения для вашего приложения. Пока вы можете запустить среду докера, будь тоLinux,ещеMac,ещеwindowsВы можете быстро развернуть свое приложение и даже запустить его за считанные секунды. если у вас естьMysqlЗеркалирование кластера, вы можете запустить его в одно мгновениеMysqlГроздья, если дать взять пачку сигарет руками. См. здесь, если вы не использовали егоDocker, Спешите найти информацию, чтобы узнать, это не сложно. Не забудьте обратить внимание, вернитесь и поделитесь галантерейными товарами ниже. Так как же яSpring BootКонтейнеризация приложений.

2. Окружающая среда

  • Spring Boot версии 2.2.0.РЕЛИЗ
  • JdkВерсияjava 8Здесь вы можете выбратьopenjdk8илиoracle jdk8
  • Dockerсреда может выбиратьLinux,MacилиWin10专业版не большая разница
  • Инструменты разработкиIdea 2019Окончательный

3. Приложение Spring Boot

Создание простого имени через IDEAdocker-springbootВеб-приложение Maven Springboot. И напишите интерфейс Spring MVC.

gz5v1D.jpg

Далее нам нужно упаковать весеннюю загрузку в исполняемый файл jar.

gz53bv.jpg

нажмите вышеpackageили знакомыйMavenИспользование командной строки высокого уровняmvn clean packageПосле компиляции он будет вtargetНайдите упакованный в каталогеjarдокумент.

4. Пишите сценарии Docker

вниз, чтобы написатьDockerСкрипт упаковки для создания образа, имя должно бытьDockerfile, расположение — это корневой каталог проекта, а расположение операции через подключаемый модуль Maven отличается. Содержание выглядит следующим образом

   # 使用aws 的 openjdk8
   FROM amazoncorretto:8
   # 作者署名   
   MAINTAINER Felordcn
   # 挂载的容器磁盘
   VOLUME ["/tmp"]
   # 使用东八区时间 环境 其他环境参数也可以通过ENV 声明
   ENV TZ=Asia/Shanghai
   RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
   #  add 命令是 将主机构建环境(上下文)目录中的文件和目录、以及一个URL标记的文件 拷贝到镜像中
   ADD /target/docker-springboot-0.0.1-SNAPSHOT.jar app.jar
   # 暴露端口 跟springboot 默认应用端口一样
   EXPOSE 8080
   #  启动镜像就执行的命令操作   相当于执行  java -jar  app.jar  -Djava.security.egd=file:/dev/./urandom     最后的指令是为了加快启动
   ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]

5. Создайте образ

Затем откройте инструмент командной строки в каталоге проекта (идея приходит с ним), чтобы выполнить скрипт (не забудьте запустить докер), не забудьте, что последняя точка представляет текущий путь, другие пути пишут относительные пути

   docker build -t docker-springboot:0.0.1 .

Затем перейдите к этапу многослойного построения, и окончательное изображение станет следующим

gz5NKi.jpg

6. Запустите контейнер

выполнение командной строкиdocker imagesПроверьте, есть ли онdocker-springboot:0.0.1, если результат такой же, как на картинке выше, он должен существовать. Затем запустите контейнер из образа, командная строка выглядит следующим образом

   docker run --name docker-app -p 8088:8080 docker-springboot:0.0.1

Команда означает, что мой передний план изdocker-springboot:0.0.1Зеркало начинается с имени, называемогоdocker-appконтейнерное приложение, при размещении контейнера内部端口8080сопоставить с宿主机端口8088, чтобы мы могли передать локальный порт8088доступ к контейнерному порту8080. Затем вы получаете доступ к интерфейсу, написанному выше http://localhost:8088/docker/hello

gz5bhW.jpg

Готово. Таким образом, мы можем просто достичьSpring BootКонтейнеризация приложений

7. Резюме

Контейнеризация приложений — горячая тема последних лет. Более того, контейнерные технологии появляются одна за другой, поэтому необходимо осваивать технологию контейнеризации приложений. Сегодня мы используем его с нуля шаг за шагомDockerпостроилSpring Bootконтейнер. Надеюсь, это поможет вам.

关注公众号:Felordcn获取更多资讯

Личный блог: https://felord.cn