环境信息: OS :Win10专业版 Docker Desktop :2.1.0.3
本文代码 --> 链接
前置条件: 1.下载Docker Win10客户端 --> 链接 2.开启Win10专业版Hyper-V 3.注册账户并登录 图示1: 图示2:
4.安装portainer(这个是一个图形化工具,可选) windows下安装脚本,复制本段代码,在本地新建一个CMD批处理可执行文件,双击执行后自动安装portainer:
@echo off set DIR=%~dp0% set VOL=%~dp0%/data set VOL=portainer_data docker run -d ^ --privileged ^ --restart always ^ --name portainer ^ -v %VOL%:/data ^ -v /var/run/docker.sock:/var/run/docker.sock ^ -p 127.0.0.1:9001:9000 ^ portainer/portainer安装好后,可以看到本地Docker服务端运行的情况,有Image,Container等
使用dockerfile-maven-plugin插件构建应用镜像:
<?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.2.0.RELEASE</version> <relativePath/> </parent> <groupId>com.wxx</groupId> <artifactId>springboot-docker</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-docker</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> <docker.registry>10.0.75.0:5000</docker.registry> <docker.image.prefix>springboot-docker</docker.image.prefix> <dockerfile-maven-version>1.4.13</dockerfile-maven-version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </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> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.4.9</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build> </project>pom.xml同级目录下创建Dockerfile文件:
FROM openjdk:8-jdk-alpine # 基础镜像 VOLUME /tmp # 容器访问宿主机上的目录 ARG JAR_FILE # 引用参数 COPY ${JAR_FILE} app.jar # 拷贝文件 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] # 容器启动后启动应用 EXPOSE 8080 # 指定端口执行maven命令进行打包:
mvn install -- 打包web应用 mvn dockerfile:build -- 打包docker镜像或者执行组合的:mvn clean install dockerfile:build 图示:
打开Git Bash 或 PowerShell
通过REPOSITORY启动:
docker run -p 8181:8181 -t springboot-docker/springboot-docker通过IMAGE ID启动:
docker run -p 8181:8181 -t 5ac1425a71de用浏览器调用 localhost:8181 --映射–> docker容器8181端口:
参考: [ 1 ] https://spring.io/guides/gs/spring-boot-docker/ [ 2 ] https://docs.docker.com/assemble/spring-boot/