容器化基础

博客 动态
0 199
优雅殿下
优雅殿下 2022-02-13 23:55:18
悬赏:0 积分 收藏

容器化基础

  1. 使用 linux 通过 java -jar 方式部署单体架构,war 包丢tomcat。
  2. 使用 Docker部署微服务架构。

相关文档:

  • CI/CD-企业级DevOps
  • Docker-初见

目录
  • 简介
  • 容器化基础
    • 创建&构建一个Java应用
    • 应用打包
    • 启动容器

简介

云原生:Java,C等开发的应用叫原生应用,部署上云。原生应用上云的整个过程,以及云上的一系列解决方案。

部署云计算资源有三种不同的方法:公共云、私有云和混合云。采用的部署方法取决于业务需求。

扩展:VPC

容器化基础

解决的问题

  • 应用构建

    • Java、C++、JavaScript
      • 打成软件包
    • .exe
      • docker build .... 镜像
  • 应用分享

    • 所有软件的镜像放到一个指定地方 docker hub
      • 安卓,应用市场
  • 应用运行

    • 统一标准的 镜像
      • docker run
  • .......

资源隔离

  • cpu、memory资源隔离与限制

  • 访问设备隔离与限制

  • 网络隔离与限制

  • 用户、用户组隔离限制

  • ......

架构

  • Docker_Host:

    • 安装Docker的主机
  • Docker Daemon:

    • 运行在Docker主机上的Docker后台进程
  • Client:

    • 操作Docker主机的客户端(命令行、UI等)
  • Registry:

    • 镜像仓库
      • Docker Hub
  • Images:

    • 镜像,带环境打包好的程序,可以直接启动运行
  • Containers:

    • 容器,由镜像启动起来正在运行中的程序

交互逻辑

装好Docker,然后去 软件市场 寻找镜像,下载并运行,查看容器状态日志等排错。

实战图

去Docker hub,找到镜像。

创建&构建一个Java应用

代码地址:https://gitee.com/zwtgit/dockerdemo

准备工作

附带:Docker安装Redis,部署视频,https://www.bilibili.com/video/BV13Q4y1C7hS?p=20

去Docker hub,找到镜像,里面有详细的文档。

启动,https://hub.docker.com/_/redis

docker run --helpdocker run [OPTIONS] IMAGE [COMMAND] [ARG...]#redis使用自定义配置文件启动docker run -v /data/redis/redis.conf:/etc/redis/redis.conf \-v /data/redis/data:/data \-d --name myredis \-p 6379:6379 \redis:latest  redis-server /etc/redis/redis.conf

应用打包

编写Dockerfile将自己的应用打包镜像。

以前

Java为例

  • SpringBoot打包成可执行jar

  • 把jar包上传给服务

  • 服务器运行java -jar

在插件中打包后可以看到jar或者war相应的包以及位置,可以在本地使用java -jar命令测试。

现在

所有机器都安装Docker,任何应用都是镜像,所有机器都可以运行。

我这里打的war包。

FROM openjdk:8-jdk-slimLABEL maintainer=leifengyangCOPY target/*.war   /app.warENTRYPOINT ["java","-jar","/app.war"]

docker构建,最后一个点表示工作在当前目录。

docker build -t java-demo:v1.0 .

启动容器

docker run -d -p 8080:8080 --name mydockerfiletest-app java-demo:v1.0 # 登录docker hubdocker login#给旧镜像起名docker tag java-demo:v1.0  leifengyang/java-demo:v1.0# 推送到docker hubdocker push leifengyang/java-demo:v1.0# 别的机器docker pull leifengyang/java-demo:v1.0# 别的机器运行docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0 
posted @ 2022-02-13 22:50 ML李嘉图 阅读(1) 评论(0) 编辑 收藏 举报
回帖
    优雅殿下

    优雅殿下 (王者 段位)

    2018 积分 (2)粉丝 (47)源码

    小小码农,大大世界

     

    温馨提示

    亦奇源码

    最新会员