一、Docker-compse安装

  1. 下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  1. 授权
chmod 777 /usr/local/bin/docker-compose
  1. 查看版本
[root@192 ~]# docker-compose version
docker-compose version 1.24.1, build 4667896b
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

二、准备java项目

1. 创建springboot项目

  1. pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.5.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>docker_images</artifactId><version>0.0.1-SNAPSHOT</version><name>docker_images</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- swagger --><!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui --><dependency><groupId>com.github.xiaoymin</groupId><artifactId>swagger-bootstrap-ui</artifactId><version>1.9.6</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>
  1. 配置swagger和编写测试接口

## 1. 引入swagger是方便测试
package com.example.docker_images.config;import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** @author Javacfox*/
@Configuration
@EnableSwagger2
public class Swagger2Config {/*** 设置swagger跨域,提供给service调用* @return*/@Beanpublic WebMvcConfigurer crossConfigurer(){WebMvcConfigurer webMvcConfigurerAdapter = new WebMvcConfigurer() {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/v2/api-docs");registry.addMapping("/**");}};return webMvcConfigurerAdapter;}@Beanpublic Docket createRestApi(){return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()//基础扫描包路径.apis(RequestHandlerSelectors.basePackage("com.example.docker_images.controller")).paths(PathSelectors.any()).build();}private ApiInfo apiInfo(){return new ApiInfoBuilder().title("java").description("java项目打包成docker images并运行").version("1.0.0").build();}private CorsConfiguration buildConfig() {CorsConfiguration corsConfiguration = new CorsConfiguration();// 1允许任何域名使用corsConfiguration.addAllowedOrigin("*");// 2允许任何头corsConfiguration.addAllowedHeader("*");// 3允许任何方法(post、get等)corsConfiguration.addAllowedMethod("*");return corsConfiguration;}@Beanpublic CorsFilter corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", buildConfig());return new CorsFilter(source);}}# 2. 接口编写
package com.example.docker_images.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping("/hello")
public class HelloController {@GetMapping("/sayHello")public String say(String userName){return "hello,"+userName+"!";}
}# 3. 主类
package com.example.docker_images;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DockerImagesApplication {public static void main(String[] args) {SpringApplication.run(DockerImagesApplication.class, args);}}

上面是所有的java项目,非常简单,目前只是为了测试。

2. 编写dockerFile、docker-compose.yml文件

  1. dockerFile
# 以jdk8为基础镜像
FROM openjdk:8
# 描述
LABEL description="Java 8"# 暴露接口
EXPOSE 8088
# 将主机中的jar包添加到镜像中
ADD /docker_images-0.0.1-SNAPSHOT.jar docker_images-0.0.1-SNAPSHOT.jar
# 运行jar包
ENTRYPOINT ["java", "-jar","docker_images-0.0.1-SNAPSHOT.jar"]
  1. docker-compose.yml
version: '3'
services:test:container_name: java_test #配置容器名build:context: .dockerfile: DockerFile #指定dockerFile文件image: java/test:8.0.0 # 指定镜像名ports:- "8088:8088" # 暴露端口volumes:- /logs:/logs # 创建容器数据卷

3. 创建并运行镜像

  1. 上传文件到服务器:/root/docker-image
  2. 到服务器命令台

[root@192 ~]# cd /root/docker_image
[root@192 docker_image]# ll
total 26384
-rw-r--r--. 1 root root      217 Nov 15 20:08 docker-compose.yml
-rw-r--r--. 1 root root      188 Nov 15 04:32 DockerFile
-rw-r--r--. 1 root root 27005222 Nov 12 10:27 docker_images-0.0.1-SNAPSHOT.jar
[root@192 docker_image]# docker-compose build
Building test
Step 1/5 : FROM openjdk:8
Trying to pull repository docker.io/library/openjdk ...
8: Pulling from docker.io/library/openjdk
e4c3d3e4f7b0: Pull complete
101c41d0463b: Pull complete
8275efcd805f: Pull complete
751620502a7a: Pull complete
a59da3a7d0e7: Pull complete
5ad32ac1e527: Pull complete
7ee60316f31a: Pull complete
Digest: sha256:44713efa363430c6d991f59bbc47238838ecf09a2df4dfb8bbbb07a55f8aeeae
Status: Downloaded newer image for docker.io/openjdk:8---> 192ceee8f2fd
Step 2/5 : LABEL description "Java 8"---> Running in 4b14bbeddd1d---> 1b5324a856ad
Removing intermediate container 4b14bbeddd1d
Step 3/5 : EXPOSE 8088---> Running in e08c74d7f0dd---> bb0a7991cb0e
Removing intermediate container e08c74d7f0dd
Step 4/5 : ADD /docker_images-0.0.1-SNAPSHOT.jar docker_images-0.0.1-SNAPSHOT.jar---> 8fa5fc5834ff
Removing intermediate container 32c95ff2d8a0
Step 5/5 : ENTRYPOINT java -jar docker_images-0.0.1-SNAPSHOT.jar---> Running in c40f5144492f---> b7258eff2bc4
Removing intermediate container c40f5144492f
Successfully built b7258eff2bc4
[root@192 docker_image]# docker-compose up -d
Creating java_test ... done
[root@192 docker_image]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
61551d9dbee7        java/test:8.0.0     "java -jar docker_..."   7 seconds ago       Up 7 seconds        0.0.0.0:8088->8088/tcp   java_test

步骤解说:

  1. 进入到jar包所在文件目录
  2. 创建镜像:docker-compose build
  3. 运行镜像:docker-compose up -d

三、访问测试

docker-compose部署java项目相关推荐

  1. Docker基础、利用Docker Compose部署Vue项目

    前言 最近,接触了Docker,写一个笔记记录一下学习的成果.参考了docker官网和一个b站老师的讲解教程Docker快速上手教程,受益良多! 一.Docker安装和重要概念 1.安装docker ...

  2. 解放双手,基于github travis-ci docker自动化部署java项目

    前言 最近在写一些小玩具的时候,一次次的测试,打包,部署流程太麻烦了,正好代码都放在github上,于是就是打算用travis-ci来进行持续集成 解放双手. 实现思路 dockerfile + do ...

  3. docker compose java_Docker-compose部署java项目

    Docker-compose部署java项目 前置条件: 安装docker 安装docker-compose 防火墙啥的都设置好 dockerfile-demo FROM java:8 VOLUME ...

  4. Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  5. Docker部署java项目(Dockerfile方式)

    Java 项目如何部署到Docker中? 如何将java项目部署到Docker中呢,这里以一个springboot为例 以下命令全部都是以linux为基础的 1. 首先找一个你熟悉的目录下创建一个目录 ...

  6. Kafka:Docker Compose部署Kafka集群

    创建目录用于存放Docker Compose部署Kafka集群的yaml文件: mkdir -p /root/composefile/kafka/ 写入该yaml文件: vim /root/compo ...

  7. Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  8. Docker Compose部署Nexus3时的docker-compose.yml代码

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  9. Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)

    场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...

  10. IDEA配置Docker一键部署SpringBoot项目(企业级做法)

    Docker一键部署SpringBoot项目 前言 一.开启Linux的Docker远程访问 1.1 安装vim工具: 1.2 修改`daemon.json`的配置: 1.3 加入配置: 1.4 重新 ...

最新文章

  1. “纹身贴皮电路“:未来在皮肤上画个电路就能监测身体健康状况
  2. gcc-5.4.0 static dwarf2 compile
  3. OSPF协议概述(一)
  4. url动态追加参数_url设置的注意事项有哪些?
  5. 开源的shell工具finalShell
  6. 庄子(公元前369年-公元前286年)
  7. B2B是什么意思? 外贸工厂企业适合做独立站吗?
  8. 分享:MSDN visual studio 2010简体中文旗舰版,专业版下载(内置正版密钥)
  9. matlab中complex的详细用法,Matlab基本函数-complex函数
  10. 庄懂着色器_L19_顶点动画
  11. oracle监听启动无权限,ubuntu 下启动oracle监听失败:TNS-12555: TNS:permission denied
  12. 一只青蛙一次可以跳上1级台阶,也可以跳上2级,也可以跳n级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
  13. Java— AWT 绘图(一)
  14. 德国奇葩经历之护照丢失
  15. 时序分析 44 -- 时序数据转为空间数据 (三) 格拉姆角场 python 实践 (上)
  16. IT十年人生过客-二十一-忙碌和非凡的一年(上)
  17. 2022. 12 青少年软件编程(C 语言) 等级考试试卷(四级)
  18. android四大组件在哪层,Android四大组件framework层
  19. 天空之门手游怎么用电脑玩 天空之门手游模拟器教程
  20. 在线支付系列【24】支付宝开放平台产品介绍

热门文章

  1. PayPal联合创始人 彼得·蒂尔 汉密尔顿学院毕业演讲
  2. Java中的IO流修改
  3. 当心,前面有地雷——C语言实现简单扫雷小游戏
  4. iOS开发 - 用AVPlayer封装一个播放器
  5. U-Mail邮件系统详解邮件收发延迟原因及解决方案
  6. 小飞鱼软件 大型生产企业设备档案管理系统介绍(图文)
  7. pdfjs预览pdf报错
  8. 【Autoware入门教程】如何在Gazebo仿真环境配置自动驾驶汽车
  9. 无线电视,有线电视和卫星电视
  10. NetLogo学习笔记5 —— 物种与传染病模型