Docker创建springboot项目镜像

第一部分:springboot工程打包

1. 在pom.xml的最后配置以下项目 

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.1.7.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>            
        </plugins>
    </build>

2. 右键点击项目 run as -> maven install  (前提是设置好项目的jdk)

3.  出现 BUILD SUCCESS 提示后 到前面提示的路径下即可看到打好的jar文件

第二部分:  创建Dockerfile镜像及实例

1.  目录管理: linux系统中 可创建统一目录为所有jar包创建镜像 公用同一个Dockerfile文件 

                     每次上传新的jar镜像都去修改这个Dockerfile。 也可以为每个jar单独创建目录

                     目录下创建各自的Dockerfile

2.  以某个jar为例 假设叫docker-lucy.jar   首先在根目录下创建docker-lucy-build子目录。进入

     子目录  在这里执行 vim Dockerfile  创建Dockerfile文件。 此处有2点需要注意:

      (1)  Dockerfile首字母要大写

    (2)Dockerfile是一个没有扩展名的文件

3.  在Dockerfile中添加以下内容

      FROM openjdk:8

      COPY *.jar /app.jar

       ENTRYPOINT ["java","-jar","/app.jar"]

4.  利用putty工具将springboot打好的jar上传到linux刚刚创建的docker-lucy-build目录下 保证jar

     文件和Dockerfile在同一个目录

5.  执行如下命令构建镜像

     docker build -t docker-lucy .

  • docker bulid 是打包命令
  • -t 镜像加一个Tag
  • docker-lucy自定义的镜像名字
  • . 小数点表示当前目录,即Dockerfile所在目录

6. 执行docker images -a  查看已经创建的镜像

7. 执行如下命令为建好的镜像启动实例

    docker run -d -p 3333:3333 --name docker-lucy-container docker-lucy

  • -d 是后台运行
  • -p 8097:8097 端口映射  右面是springboot工程启动的端口 在容器内部 左面是宿主机对外端口
  • --name 定义容器名字
  • docker-lucy 以哪个镜像为基础运行容器

8.  执行 docker logs docker-lucy-container   查看容器是否顺利启动  没问题后执行下面命令测试服 务

     curl localhost:3333/xxx

第三部分: 将自己的镜像通过阿里云上传下载

1.  登录阿里云个人镜像仓库管理界面:

      https://cr.console.aliyun.com/cn-beijing/instances

2.  进入个人镜像管理界面 执行下面三步操作

     (1) 设置仓库密码 (registry密码)

     (2) 新建命名空间

     (3) 在命名空间下 为要上传的镜像建立各自的镜像仓库

3.  回到linux系统  执行下面命令登录阿里云个人仓库

    docker login --username=aliyun9758752338 registry.cn-beijing.aliyuncs.com

    密码: 步骤2设置的密码

    其中aliyun9758752338是系统自动生成的仓库用户名 每个人不一样

4.  执行下面2条命令  上传自己的镜像 如果网速慢 需要一些时间

    docker tag [ImageId] registry.cn-beijing.aliyuncs.com/xxx_space/docker-xxx:1.0
   docker push registry.cn-beijing.aliyuncs.com/xxx_space/docker-xxx:1.0

     xxx_space是步骤2建立的命名空间 

     docker-xxx是步骤2建立的镜像仓库

     1.0是镜像版本

5.  本地镜像删除 执行下面命令尝试下载刚刚上传的镜像

      docker pull registry.cn-beijing.aliyuncs.com/xxx_space/docker-xxx:1.0