濤。

t.

Docker部署项目并上传至镜像仓库流程

Docker部署项目并上传至镜像仓库流程

1.创建SpringBoot项目,RunDockerController要与启动项在同级包下,否则在地址栏中请求会报404

 package com.wt;
 ​
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 ​
 @Controller
 public class RunDockerController {
 ​
     @RequestMapping("/")
     @ResponseBody
     public String hello() {
         return "Hello, SpringBoot With Docker";
     }
 ​
 }

2.将项目打成jar包

idea: Maven ->clean(清除) ->compile(编译) ->package(打包)

jar包在项目工作空间target目录下

3.将jar上传至服务器,在同级目录下创建Dockerfile文件

touch Dockerfile

4.编写Dockerfile文件

vim Dockerfile
 # Docker image for springboot file run
 # VERSION 0.0.1
 # Author: tao
 # 基础镜像使用java:8
 FROM java:8
 ​
 # 作者
 MAINTAINER tao
 ​
 # VOLUME 指定了临时文件目录为/tmp。
 # 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。
 # 该步骤是可选的,如果涉及到文件系统的应用就很有必要了。
 # /tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录。
 VOLUME /tmp
 ​
 # 将jar包添加到容器中并更名为app.jar
 ADD app.jar app.jar
 ​
 # 运行jar包
 RUN bash -c 'touch /app.jar'
 ​
 #启动认证服务
 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]​

5.制作镜像(注意:不要忘记 . )

docker build -t app:1.0 .

解释:

docker build命令:会根据Dockerfile里你定义好的命令进行构建新的镜像。

-t :代表要构建的镜像的tag。

. :代表当前目录,也就是Dockerfile所在的目录。

查看镜像

docker images

6.启动容器

docker run -d -p 8080:9264 app:1.0

解释:

-d :后台方式运行

-p : (小写英文p)指定容器的端口,将服务器中的8080端口映射到容器中的9264(项目中端口配置的是9264)端口

查看正在运行的容器,如下图所示

docker ps

7.通过浏览器进行访问

说明:

ip + 端口号

查看 ip 命令

ifconfig 或 ip addr

如下图所示,成功访问

 

8.给私有镜像库推送镜像

8.1创建私人镜像仓库(我使用的是阿里云的镜像仓库)
  • 注:此处的镜像仓库指的是单个镜像

  • 登录阿里云平台 https://www.aliyun.com/ -> 产品 -> 弹性计算 -> 容器服务 -> 容器镜像服务

  • -> 管理控制台

  • -> 个人实例

  • -> 镜像仓库 -> 创建镜像仓库 -> 下一步

  • -> 本地仓库 -> 创建镜像仓库

9.在执行docker前登录你的私有仓库(重要)

docker login --username=wangt98 registry.cn-hangzhou.aliyuncs.com

说明:此处的登陆密码是访问凭证中的密码

10.变更tag信息

docker tag app:1.0 registry.cn-hangzhou.aliyuncs.com/wangt98/wangt98:app_2.0

11.推送镜像上传至镜像仓库

docker push registry.cn-hangzhou.aliyuncs.com/wangt98/wangt98:app_2.0

如下图所示推送成功:

 

其他相关:

12.拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/wangt98/wangt98:app_2.0

13.导出镜像

docker save -o app.tar registry.cn-hangzhou.aliyuncs.com/wangt98/wangt98:app_2.0

14.解压镜像

docker load -i app.tar

15.删除带有tag的镜像

docker rmi registry.cn-hangzhou.aliyuncs.com/wangt98/wangt98:app_2.0

 

posted on 2022-01-04 09:10  濤。  阅读(523)  评论(0编辑  收藏  举报

导航