idea基于docker desktop 打包镜像
idea基于docker desktop 打包镜像
- 安装 docker desktop
- idea 安装docker 插件
- 创建Dockerfile文件
- 将jar包复制到 Dockerfile 同一目录
- 为idea配置docker环境
- 构建镜像
- 保存Docker 镜像为 tar 文件
- 导入镜像到生产环境
- 启动镜像
安装 docker desktop
我的是windows10, 从官网下载的 docker desktop 无法安装, 报错:
We've detected that you have an incompatible version of Windows. Docker Desktop requires Windows 10 Pro/Enterprise/Home version 19044 or above. To continue with the installation, upgrade Windows to a supported version and then re-run the installer. 这个提示表明你的 Windows 版本不符合 Docker Desktop 的最低要求。 Docker Desktop 要求运行的 Windows 版本是 Windows 10 Pro、Enterprise 或 Home 版本, 并且版本号需要是 19044 或以上。
下面的连接, 可以下载旧版本的 docker desktop , 可以正常安装
国内docker desktop镜像下载
【全面详细】Windows10 Docker安装详细教程
安装完成后, 等下idea需要通过Docker for windows选择来链接docker环境生成镜像
idea 安装docker 插件
创建Dockerfile文件
在项目根目录创建文件夹: docker
在文件夹下创建文件: Dockerfile
# 项目运行需要jdk环境, 会先拉取一个jdk镜像 FROM openjdk:8-jre # 镜像的维护人 LABEL maintainer="vxdata" # 指定时区为亚洲/上海 ENV TZ=Asia/Shanghai # 设置容器的时区为亚洲/上海,并且将此时区信息写入了 /etc/timezone 文件 RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 创建数据卷 VOLUME /home/vxdata # 创建容器内的目录 RUN mkdir -p /home/vxdata # 设置容器的工作目录为 /home/vxdata,所有后续的命令都会在这个目录下执行。 WORKDIR /home/vxdata # 复制主机上Dockerfile目录下得jar到容器内 COPY ./ruoyi-admin.jar /home/vxdata/ruoyi-admin.jar # 创建容器内的目录 RUN mkdir -p /home/vxdata/logs # 定义了容器启动时默认执行的命令 CMD ["java", "-Xss2M", "-jar", "ruoyi-admin.jar", ">>", "/home/vxdata/logs/out.txt", "2>>", "/home/vxdata/logs/error.txt"]
将jar包复制到 Dockerfile 同一目录
打开Dockerfile文件目录, 进入cmd,执行命令
# 我这里使用的是相对路径,你可以根据你得项目结构自行更改 copy "..\..\ruoyi-admin\target\ruoyi-admin.jar" .
为idea配置docker环境
构建镜像
打开Dockerfile文件目录, 进入cmd,执行命令
docker build -t kg-image:1.0.1 . 解释 kg-image docker的REPOSITORY 1.0.1 docker的TAG . 当前目录下的Dockerfile文件
执行结果
D:\Program Files\JetBrains\work\gitlab\知识谱图\docker\jar>docker build -t kg-image:1.0.1 . [+] Building 2.3s (11/11) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 952B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [internal] load metadata for docker.io/library/openjdk:8-jre 0.0s => [1/6] FROM docker.io/library/openjdk:8-jre 0.0s => [internal] load build context 2.1s => => transferring context: 299.85MB 2.1s => CACHED [2/6] RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo Asia/Shanghai > /etc/timezo 0.0s => CACHED [3/6] RUN mkdir -p /home/vxdata 0.0s => CACHED [4/6] WORKDIR /home/vxdata 0.0s => CACHED [5/6] COPY ./ruoyi-admin.jar /home/vxdata/ruoyi-admin.jar0.0s => CACHED [6/6] RUN mkdir -p /home/vxdata/logs 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:0e42a9e01330eea9622eb57adac43322b71783eed723e85c2e4ac6e574800479 0.0s => => naming to docker.io/library/kg-image:1.0.1 0.0s Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them D:\Program Files\JetBrains\work\gitlab\知识谱图\docker\jar>docker images REPOSITORY TAG IMAGE ID CREATED SIZE kg-image 1.0.1 0e42a9e01330 42 minutes ago 573MB openjdk 8-jre 0c14a0e20aa3 20 months ago 274MB
保存Docker 镜像为 tar 文件
保存镜像到当前目录
docker save -o kg-image.tar kg-image:1.0.1
docker save 是 Docker 命令,用于将 Docker 镜像保存到一个文件中。 -o kg-image.tar 指定了输出文件的名称为 kg-image.tar,-o 参数用于指定输出文件。 kg-image:1.0.1 指定了要保存的 Docker 镜像的名称及标签。
导入镜像到生产环境
docker load -i kg-image.tar
启动镜像
#!/bin/bash docker run -d \ --name kg \ -p 8080:8080 \ -v /home/vxdata/uploadPath:/home/vxdata/uploadPath \ -v /home/vxdata/logs:/home/vxdata/logs \ -v /home/vxdata/application.yml:/home/vxdata/application.yml \ kg-image:1.0.0 # 检查容器启动日志 echo "检查容器启动日志..." sleep 3 # 等待几秒钟以确保容器已启动 docker logs kg
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!





