1、控制面板->程序和功能->启用或关闭的Windows功能,勾选Hyper-V;勾选适用于Linux的Windows子系统
2、查看资源管理器——性能——cpu,属性“虚拟化”,如果不是“已启用”,开机F12到BIOS中开启虚拟设置
3、Docker Desktop安装,单机本地“模拟服务器环境”
Docker Desktop是Docker在win 10操作系统上的安装方式,首先到Docker Desktop官网下载安装包,安装地址Install on Windows | Docker Documentation
4、安装后验证:cmd(管理员身份运行)输入命令:docker version
5、cmd(管理员身份运行)输入命令
netsh winsock reset
##启用Hyper-V
dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All
##设置开机启动 Hypervisor
bcdedit /set hypervisorlaunchtype auto
6、在准备好的SpringBoot项目中的pom.xml中增加依赖
<!--引入docker依赖-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration><!-- 这里是最终生成的docker镜像名称 -->
<imageName>itwx/${project.artifactId}</imageName>
<!-- 基础镜像,运行一个springboot应用只需要基础的java环境就行 -->
<baseImage>java:8</baseImage>
<!-- docker启动的时候执行的命令 -->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<dockerDirectory>config</dockerDirectory>
<!--指定远程 docker api地址-->
<dockerHost>http://localhost:2375</dockerHost>
<!--resources是指那些需要和 Dockerfile 放在一起,在构建镜像时使用的文件,一般应用 jar 包需要纳入-->
<resources>
<resource>
<targetPath>/</targetPath>
<!--jar 包所在的路径 此处配置的 即对应 target 目录-->
<directory>${project.build.directory}</directory>
<!-- 需要包含的 jar包 ,这里对应的是 Dockerfile中添加的文件名 -->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
特别注意:如果项目中链接了数据库,要使用明码IP,使用默认的localhost造成去访问docker,而没有访问服务器的DB的服务器名称:
url: jdbc:sqlserver://localhost:1433;database=TEST3, 改成:url: jdbc:sqlserver://172.16.74.20:1433;database=TEST3
7、使用maven打包生成jar:Demo0424.jar
8、准备文本文件:名字=“Dockerfile”,没有扩展名
# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee
# 基础镜像使用java
FROM openjdk:8
# 作者
MAINTAINER eangulee <eangulee@gmail.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD Demo0424.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
#指定访问端口,与yml文件中的端口一致
EXPOSE 8080
CMD echo "success-----------------ok"
9、把“Dockerfile和Demo0424.jar” 2个文件放到一个新建目录下(假设这个目录就是服务器上存放运行程序的地方),cmd(管理员身份运行)输入命令:
##创建image
docker build -f Dockerfile -t dkdemo:v1.0.0 .
## dkdemo:v1.0.0,image的名称和版本号
##说明:-p 8088:8080 指定宿主机端口8088映射到docker容器端口8080
docker run -p 8080:8080 --name dkdemo1 dkdemo:v1.0.0
10、此时docker运行起来了,和直接运行Demo0424.jar是一样的效果
windows下单机测试和实际应用有区别, 设置BIOS时折腾到胸闷;Dockerfile中设置“from java:8”不行到现在还不知道原因,最后链接SqlServer数据库报错折腾到投降,原因是对docker理解不够。以此给大家借鉴。