windows11下使用docker打包镜像并上传到个人镜像仓库(详细图文)

1,400 阅读2分钟

windows11下使用docker打包镜像并上传到个人镜像仓库(详细图文)

一、windows下安装docker

步骤:

注意 :安装windows版的docker 需要先安装WSL**(windows System for Linux)具体可参考:www.ytso.com/270594.html, ** 本文就不做详细描述。

  1. docker官网 www.docker.com/products/do… 下载Docker Desktop

image-20230308102350551

  1. 下载成功后,双击进行安装

image-20230308102623999.png 3. 安装成功后 在dos窗口查看版本号docker --version ,出现下图信息则为安装成功

image-20230308104120946.png

二、创建个人镜像仓库

​ 如果自己购买了服务器,可以在服务器搭建私人镜像仓库,具体参考:blog.csdn.net/AtobeKegio/… 本文主要以免费的阿里云容器镜像服务实现创建。

步骤:

  1. 登录阿里云 account.aliyun.com/login/login… ,如果没有账号可以先注册后在登录。

image-20230308104943789.png

  1. 登录成功后,点击控制台。然后在最左上角,点击“ 三 ”图标 ,菜单展开后找到容器镜像服务。

image-20230308105429489.png

image-20230308105406438.png 3. 选择个人版实例,创建个人版实例

image-20230308105655345.png 4. 点击个人实例进入

image-20230308105757031.png 5. 点击镜像仓库,创建镜像仓库

image-20230308105958411.png 6. 填写仓库信息(仓库类型选择公开就所有人都能pull和push,设为私有则需要输入账号密码才能pull,push),填写完毕点击下一步

image-20230308110147601.png 7. 点击本地仓库,然后点击创建仓库,至此,个人镜像仓库就创建完成了。

image-20230308110405857.png

image-20230308133401773.png

三、打包本地代码,并上传至个人镜像仓库

  1. 将本地项目打包成jar包。

image-20230308111159984.png 2. 新建DockerFile和 docker-entrypoint.sh 两个文件,DockerFile为docker打包所需文件,docker-entrypoint.sh为项目入口文件。

  DockerFile

  ```
  FROM openjdk:8u272-jdk
  ENV APP_JAR /devices-0.0.1-SNAPSHOT.jar
  ENV TZ Asia/Shanghai
  WORKDIR /
  COPY target/devices-0.0.1-SNAPSHOT.jar /
  ADD /docker-entrypoint.sh //
  RUN chmod +x docker-entrypoint.sh
  ENTRYPOINT ["./docker-entrypoint.sh"]
  ```

  docker-entrypoint.sh

  ```
  #!/usr/bin/env bash
  java -jar $JAVA_OPTS -server \
  -XX:+UnlockExperimentalVMOptions \
  -XX:+UseCGroupMemoryLimitForHeap \
  -XX:-OmitStackTraceInFastThrow \
  -Djava.security.egd=file:/dev/./urandom \
  /$APP_JAR
  ```

3. 运行cmd,进入命令行窗口,切换到项目target同级目录,创建docker镜像,注意:最后面的那个点不能漏掉

image-20230308113344421.png

image-20230308113638290.png 4. push创建好的镜像到个人仓库

image-20230308132750506.png

image-20230308132831771.png 5. 至此,docker打包项目到个人镜像仓库就完成了,如果需要使用该镜像使用命令

  ```
  docker pull registry.cn-hangzhou.aliyuncs.com/jxzzy/mytest:[镜像版本号]
  ```

总结

​ docker确实是个非常好用的中间件,尤其对开发和运维来说简直就是工作利器,本人平时工作用的多,但是不怎么喜欢总结和记录,导致隔了一段时间不使用就会忘记,所以这个习不好惯会慢慢改过来,以后也会经常把工作经验进行记录和分享,如果我的分享对您有点帮助就点赞收藏吧!当然,如果有大佬能够指点一二,鄙人也不胜感激!