Java学徒之路——windows单机docker打包部署自测

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理解不够。以此给大家借鉴。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值