zoukankan      html  css  js  c++  java
  • docker流程

    Docker概述

    docker出现

    开发代码 --- 上线代码

    问题:

    • 开发环境可以运行,部署到线上环境出现他各种错误
    • 版本更新,服务不能用了

    环境配置十分麻烦,每一台机器都要部署环境(集群redis,ES, Hadoop)

    发布一个项目j ar + (Redis Mysql jdk ES), 项目能不能带上环境安装打包

    之前在服务器配置一个应用的环境 Redis,MYSQL, JDK ES Hadoop,配置麻烦, 不能跨平台

    windows 最后发布到linux

    传统: 开发提供jar包,其他的运维做

    现在:开发打包部署上线,一套流程做完


    Docker给以上的问题提出了解决方案

    开发:Java --- jar + 环境 --- 打包成docker镜像. --- 发送到docker仓库

    运维:从镜像仓库下载镜像并运维, 直接用


    镜像仓库理解为应用商店

    java - apk -发布到应用商店

    安卓客户端-- 从应用商店下载 - 本地运行 -- 直接使用

    JRE --- 多个应用 (比如说都是8088端口,产生了端口冲突)

    ---》使用docker将项目代码以及依赖的的环境打包成docker镜像然后在服务器上运行


    docker历史

    2013 docker 开源

    2014.4.9。docker 1.0 发布


    虚拟机

    在windows中装一个vmware, 通过这个软件我们可以虚拟出来一台或多台电脑(硬件+软件)

    虚拟机属于虚拟化技术, docker是容器技术,也是虚拟化技术的一种

    vm, linux centos原生镜像。 隔离,需要开启多个虚拟机, 几个G,启动速度分钟级
    docker, 隔离, 镜像(最核心的环境4m+jdk+mysql)小巧,几M,启动速度秒级
    

    docker基于Go语言开发,2013年开源项目

    https://www.docker.com/

    https://docs.docker.com/

    https://hub.docker.com/


    docker能干嘛

    虚拟机技术缺点

    资源占用多

    冗余步骤多

    启动慢


    容器化技术不是模拟的完整的一个系统

    比较docker和虚拟机技术的不同:

    • 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
    • 容器内的应用直接运行在宿主机的内核,容器内是没有内核的,也没有虚拟硬件,所以轻便了
    • 每个容器是相互隔离,每个容器内都有一个属于自己的文件系统,互不影响

    ​ DevOps(开发,运维)

    应用快速的交付和部署

    传统:一堆帮助文档,安装程序

    Docker: 打包发布测试,一键运行

    更便捷的升级和扩容

    使用了docker以后, 升级只需要更新镜像

    Springboot 1.5 Redis 5 tomcat8

    项目打包一个镜像,扩展服务器A. 服务器B

    更简单的系统运维

    容器化后,开发,测试环境高度一致

    更高效的计算资源利用

    Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,服务器的性能可以被压榨到极致


    Docker安装

    docker的名词解释

    镜像(image):

    docker镜像就好比是一个模版,可以通过这个模版来创建容器服务, tomcat镜像》run=>tomcat容器(提供服务器),

    通过这个镜像可恶意创建多个容器(最终服务运行或者项目运行就是在容器中)

    容器(container):

    Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建

    启动,停止,删除,基本命令

    目前就可以把这个容器理解就是一个简易的linux系统

    仓库(repository):

    仓库就是存放镜像的地方

    仓库分为公有仓库和私有仓库

    Docker Hub(默认是国外的)

    阿里云。。都有容器服务器(配置镜像加速!)


    环境准备

    # uname -r
    3.10.0-1160.11.1.el7.x86_64
    # cat /etc/os-release 
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    
    CENTOS_MANTISBT_PROJECT="CentOS-7"
    CENTOS_MANTISBT_PROJECT_VERSION="7"
    REDHAT_SUPPORT_PRODUCT="centos"
    REDHAT_SUPPORT_PRODUCT_VERSION="7"
    

    文档:https://docs.docker.com/engine/install/centos/

    第一步:卸载docker

    yum remove docker 
                      docker-client 
                      docker-client-latest 
                      docker-common 
                      docker-latest 
                      docker-latest-logrotate 
                      docker-logrotate 
                      docker-engine
    

    第二步:需要的安装包

    yum install -y yum-utils
    

    第三步:设置镜像的仓库

    yum-config-manager 
        --add-repo 
        https://download.docker.com/linux/centos/docker-ce.repo
    
  • 相关阅读:
    16. 3Sum Closest
    17. Letter Combinations of a Phone Number
    20. Valid Parentheses
    77. Combinations
    80. Remove Duplicates from Sorted Array II
    82. Remove Duplicates from Sorted List II
    88. Merge Sorted Array
    257. Binary Tree Paths
    225. Implement Stack using Queues
    113. Path Sum II
  • 原文地址:https://www.cnblogs.com/cjwnb/p/14662263.html
Copyright © 2011-2022 走看看