Windows安装Docker、Jar包构建Docker image、部署到Linux内网(Linux得有docker)

准备工作:

1.打开任务管理器,点击CPU,查看虚拟化这项是否为已启用,如果未启用,要在bios开启硬件虚拟化

2.打开控制面板>>程序>>程序和功能>>启动或关闭Windows功能>>勾选Hyper-V、Virtual Machine Platform、适用于Linux的Windows子系统>>确定 重启电脑

3.重启后管理员身份运行的Windows PowerShell里执行:wsl --set-default-version 2

4.下载并安装Docker Desktop Installer.exe

官方地址:https://docs.docker.com/desktop/install/windows-install

5.安装好后如何查看是否安装docker成功:打开CMD 执行docker -v 有输出即代表安装成功

6.设置镜像加速器,打开Docker Desktop>>Settings>>Docker Engine,把下面代码复制进去

{
  "registry-mirrors": [
    "加速器地址(华为、腾讯、阿里都可以)"
  ]
}

构建docker image:

1.构建Dockerfile文件(无后缀)

2.打开PowerShell,cd到你要构建的镜像的目录,执行命令行

"New-Item -ItemType File -Name Dockerfile"

3.用文本编辑器编辑Dockerfile文件,编辑内容为:

 # 使用 OpenJDK 8 作为基础镜像
FROM openjdk:8
# 作者署名
LABEL authors="yaku1t"
# 将你的 JAR 文件复制到镜像中的 /app 目录
COPY xxx.jar /app/xxx.jar
# 设置容器启动时执行的命令
ENTRYPOINT ["java", "-jar", "/app/xxx.jar"]

4. 把jar包跟构建的Dockerfile文件放在你指定的同一目录下

5.管理员身份运行Windows PowerShell cd到放jar包和Dockerfile文件的目录下

6.登陆dockerhub

docker login -u 你的账号用户名

7.登录成功后构建镜像

docker build -t 名字:版本号 .(这个.代表的是当前目录)

8.构建后查看是否构建成功

docker images

9.看你设置的镜像名是否显示,如显示则代表构建成功

部署到Linux内网:

1.构建成功后导出镜像为tar包

docker save -o E:\path\to\xxx.tar 名字:版本号(我用的是绝对路径也可以用相对路径)

2. 导出后把tar包给放进你想要部署的Linux主机中并加载镜像

docker load -i <放在Linux主机的tar包位置 /path/to/xxx.tar>

3. 最后运行该镜像(使用-p参数来映射容器端口)

docker run -d -p 8080:8080 <镜像名 模板REPOSITORY:TAG 例子redis:6.2.16>

注意事项:

1.该指令中的 -p 8080:8080 选项实际上是将主机的 8080 端口(前面一部分)映射到容器的 8080 端口(后面一部分)

2.因此:主机的 8080 端口请求将被转发到容器内的 8080 端口。

3.如果你springboot的配置文件设置了server.port那就要把后面的那个端口写成你在springboot的配置文件设置的端口

4.如果不想改那就通过-e参数来覆盖你springboot的配置文件里的server.port。

5.举例: 比如你springboot的配置文件设置了server.port=8079

你就有两种命令可供执行:

1.docker run -d -p 8080:8079 redis:6.2.16

2.docker run -d -p 8080:8080 -e "SERVER_PORT=8080" redis:6.2.16

### 将Java应用程序(JAR文件)构建Docker镜像的最佳实践 #### 准备工作 为了成功将Java应用程序打Docker镜像,需确保已安装并配置好Docker环境。此外,拥有待打的`.jar`文件也是必不可少的前提条件。 #### 创建Dockerfile 编写一个合适的`Dockerfile`是整个过程中至关重要的一步。对于大多数场景而言,推荐采用多阶段构建的方式,这种方式不仅能够有效减少最终镜像大小,还能提高安全性与性能[^2]。 ```dockerfile # 使用官方OpenJDK作为基础镜像 FROM openjdk:17-jdk-alpine AS build # 设置工作目录 WORKDIR /app # 复制项目依赖至容器内 COPY . . # 编译项目(如果适用) RUN javac -d ./out src/*.java && \ jar cvf app.jar -C out/ . # 开始第二阶段:创建精简版运行时环境 FROM openjdk:17-jre-slim # 设定工作路径 WORKDIR /opt/app # 从build阶段复制编译好的jar到此层 COPY --from=build /app/app.jar /opt/app/ # 定义默认入口点 ENTRYPOINT ["java", "-jar", "/opt/app/app.jar"] ``` 上述示例展示了如何通过两步完成从源码到可执行镜像的过程。第一步基于完整的开发工具链来处理项目的编译;而第二步则仅保留必要的运行库和支持文件,从而得到体积更小、加载速度更快的结果。 #### 构建与测试镜像 保存上面定义的内容到名为`Dockerfile`的文本文件之后,在同一目录下打开终端窗口输入如下指令: ```bash $ docker build -t my-java-app . $ docker run --rm my-java-app ``` 这会触发一次完整的构建流程,并立即启动新生成的应用实例用于初步验证其功能是否正常。 #### 推送至仓库 当确认本地环境中一切运作良好后,就可以考虑将该自定义镜像推送到公共或私有的注册中心以便后续分发给其他团队成员或是生产服务器上部署使用了。 ```bash $ docker tag my-username/my-java-app:v1.0.0 $ docker push your-dockerhub-username/my-java-app:v1.0.0 ``` 以上操作完成后即完成了全部准备工作,现在可以从任何地方拉取最新版本的镜像并快速部署服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值