• 制作docker镜像与Docker服务编排


    Dockerfile

    程序员可以通过Dockerfile制作镜像,在linux中启动变成容器运行

    比如:将springboot生成的jar包通过Dockerfile制作成镜像 在inux中启动运行

    ​ springboot:jar包—》Dockerfile—》镜像—》容器(springboot项目的运行环境)

    Docker 镜像原理

    镜像原理
    在这里插入图片描述

    Dockerfile概念及作用

    在这里插入图片描述

    举例:配置一个

    **需求:**定义dockerfile,发布springboot项目

    实现步骤:
    (1) 上传jar包

    将hello项目打成一个可执行的jar包 hello-1.0-SNAPSHOT.jar,把这个jar包上传到linux中

    (2) 创建dockerfile文件,文件名my_hello

    #1.定义父镜像(定义当前工程依赖的环境):
    FROM java:8
    #2.定义作者信息(可以省略不写):
    MAINTAINER itheima
    #3.将jar包添加到容器(将jar包存入镜像中):
    ADD hello-1.0-SNAPSHOT.jar hello.jar
    #4.指定这个容器对外暴露的端口号
    EXPOSE 8888
    #5.定义容器启动执行的命令: 当通过此镜像启动容器的时候,执行的命令
    ENTRYPOINT [“java”,“-jar”,“/hello.jar”]

    (3) 通过dockerfile构建镜像

    #通过dockerfile构建镜像:执行这个名称是my_hello的dockerfile文件 -f: from -t: to
    docker build -f my_hello -t my_hello_image .
    #最后一个点不要忽略

    (4) 启动容器

    #创建启动容器
    docker run -id --name=自定义名称 -p 端口 镜像名称

    Docker服务编排

    服务编排:批量管理所有容器进行统一启动/统一停止且统一删除

    服务编排

    微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

    • 要从Dockerfile build image 或者去dockerhub拉取image
    • 要创建多个container
    • 要管理这些container(启动停止删除)

    **服务编排:**按照一定的业务规则批量管理容器

    Docker Compose(服务编排) 概述

    Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

    1. 利用 Dockerfile 定义运行环境镜像
    2. 使用 docker-compose.yml 定义组成应用的各服务
    3. 运行 docker-compose up 启动应用

    在这里插入图片描述

    安装

    安装Docker Compose

    # Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。(以安装) 
    curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
    # 查看版本信息 
    docker-compose -version
    # 设置文件可执行权限 
    chmod +x /usr/local/bin/docker-compose
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    卸载Docker Compose

    # 二进制包方式安装的,删除二进制文件即可
    rm /usr/local/bin/docker-compose
    
    • 1
    • 2

    举例:创建一个

    通过docker compose进行容器批量管理:一次性启动三个容器(nginx,tomcat,redis)

    步骤:

    (1) 定义一个Docker Compose配置文件

    • docker-compose.yml
    • 定义需要的容器
    • 每个容器的配置

    (2) 进入docker-compose.yml所在的目执行docker-compose up -d 命令批量执行

    开始操作:

    (1) 创建docker-compose目录

    mkdir ~/docker-compose
    cd ~/docker-compose
    
    • 1
    • 2

    (2) 定义docker-compose.yml 文件

    vi docker-compose.yml 内容如下

    version: '3'
    services: 
      nginx:
       container_name: my_nginx
       image: nginx
       ports:
        - 80:80
        
      tomcat:
       container_name: my_tomcat
       image: tomcat:8.5
       ports:
        - 8080:8080    
      
      redis:
       container_name: my_redis
       image: redis
       ports:
        - 6379:6379   
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    (3) 启动容器
    在执行命令之前应该把上面的那些容器关闭并且删除
    执行此命令的时候,需要和配置文件再同一个目录下

    docker-compose up -d
    
    • 1

    关闭容器并且删除

    docker-compose down 
    
    • 1

    docker与虚拟机比较

    不同:

    • 软件在虚拟机中 软件在docker中

    • 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。

    • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

    Docker虚拟机
    启动速度秒级分钟级
    硬盘使用一般为MB一般为G
    CPU/内存消耗
    支持数量上百个十几个
    可视化管理不成熟成熟

    在这里插入图片描述

  • 相关阅读:
    java的左移运算符和右移运算符
    笔试强训48天——day13
    owasp top 10
    java计算机毕业设计智慧机场管理系统源程序+mysql+系统+lw文档+远程调试
    第12期 | GPTSecurity周报
    Android约束布局ConstraintLayout的Guideline,CardView
    网络安全中的NISP-SO安全运维工程师都需要那些工具?
    网络与TCP-IP
    从零开始:使用低代码平台开发OA系统的教程
    Linux 的常用命令大全
  • 原文地址:https://blog.csdn.net/q290994/article/details/126350016