zoukankan      html  css  js  c++  java
  • linux之docker

    简介

    Docker是一个开源的应用容器引擎,基于go语言,遵循从Apache2.0协议开源

    Docker可以让开发者打包他们的应用以及依赖包到一个轻量级,可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化.

    容器是完全使用沙箱机制,相互之间不会有任何接口.

    docker的三大概念

    镜像:
        --理解为系统盘dvd镜像,轻量级的镜像文件
    
    仓库:
        --存储docker镜像的
    
    容器:
        --是基于镜像运行出的,容器实例
    三大概念

    Docker应用场景

    1.本地依赖
        --使用docker,可以节省大量时间.docker能提升开发者的开发效率,让我们快速搭建开发环境,开发环境的机器通常内存比较小,此前使用虚拟的时候,经常需要为开发环境的机器加内存,而通过 Docker 可以轻易的让几十个服务在 Docker 中跑起来。
    
    2.搭建环境
         --它能让你将运行环境和配置放在代码中然后部署,同一个Docker的配置可以在不同的环境中使用,这样就降低了硬件要求和应用环境之间耦合度
    
    3.微服务
         --微服务架构一一将一个整体的应用拆分成松耦合的单个体服务.你可以将每个服务打包为一个 docker 镜像并使用 docker-compose 来模拟生产环境(checkout docker networks)。最开始实践的时候可能会比较费时费力,但长远地来看,最终将产生巨大的生产力。
    
    4.自动测试
        --这里不是指在 Docker 中运行测试用例,而是将测试用例与镜像紧密运行在一起。当你针对一个 docker 镜像编写测试用例时会有一个很大的优势
    
    5.部署过程
        --许多主流的主机提供商都支持托管 docker,如果你拥有一个具有 shell 访问权限的专用节点/vm,那么事情将变得更容易。只需要设置好 docker,并在你想要的端口上运行你的镜像即可。
    
    6.持续部署
        --都说 Docker 天生适合持续集成/持续部署,在部署中使用 Docker,持续部署将变得非常简单,并会在进入新的镜像后重新开始。Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
    
    7.多租户环境
        --Docker 有意思的一个使用场景是在多租户的应用中,它可以避免关键应用的重写。如果你将应用程序服务公开给多个租户(租户指一组用户,例如组织),使用单租户方案设计的应用程序如果用上了 sub-domain + docker 可以快速获得提供多租户的服务。
    
    8.来自一台机器的而多个app
        --ocker 仍可以很好地管理单个机器上的所有服务。你应该使用文件夹挂载来为每个基于数据的 docker 镜像保留数据。
    
    9.扩容
        --Docker 通过创建另一个容器来帮助你轻松地进行水平扩展。如果遇到巨大的高峰流量,Docker 可以帮助你解决问题 —— 只需添加更多的机器并增加负载均衡器背后运行的容器数量。
    场景

    Docker的优点

    1、简化程序:
    Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。
    Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的任务,在Docker容器的处理下,只需要数秒就能完成。
    2、避免选择恐惧症 如果你有选择恐惧症,还是资深患者。Docker 帮你打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,
    所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。
    3、节省开支: 一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,
    让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

    Docker安装

    1.安装docker,由于网速问题,选择阿里云的yum源下载

    yum install docker -y

    2.启动docker

    systemct1 start docker

    3.docker加速器,加速下载

    curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
    会生成一个docker配置文件,路径是/etc/docker/daemon.json

    4.配置了加速器,需要重启docker

    systemct1 restart docker

    Docker的基本命令学习

    #下载docker镜像
    docker pull hello-world
    #运行docker镜像,产生容器实例
    
    #运行docker镜像,ubuntu系统
    docker run ubuntu  
    
    #交互式的运行ubuntu 容器,进入容器空间内
    
    docker run -it  ubuntu  /bin/bash 
        #参数解释
        -i 交互式的命令操作
        -t 开启一个终端提供访问
        /bin/bash   指定shell解释器
        
    #打包构建一个携带vim的centos镜像文件
        1.先运行一个centos基础镜像
        docker run -it centos /bin/bash 
        2.在容器空间内,安装vim
        yum install vim -y 
        3.退出容器空间,提交这个容器,为新的镜像
        docker commit   1d5698b91178    yuchao163/s17centos-vim
        
        
    #导出本地的镜像文件
    docker save  0fc9d49cb739   > /opt/s17centos.tar.gz
        
    #导入镜像文件,    
    docker load  <  /opt/s17centos.tar.gz
    #删除容器记录
    
    docker rm  容器id 
    
    #批量删除容器记录
    docker  rm `docker ps -aq`
    
    #强制删除所有容器记录
    
    docker rm -f  `docker ps -aq`
    
    #删除镜像记录
    
    docker rmi  镜像id 
    
    #批量删除镜像文件
    docker rmi `docker images -aq`  
    改:
    
    #修改docker镜像名,tag标记名
    docker tag  镜像id   新的标记名 
    
    
    查:
    
    运行过docker镜像后,会产生容器记录
    
    #差看docker镜像的命令
    
    docker  image ls  
    docker  images   #等同于上述命令,查看镜像 
    
    
    #查看正在运行的容器进程,
    docker container ls  
    docker ps 
    
    #docker ps只能查看正在运行的容器
    docker ps -a  查看所有的容器记录 
    
    #docker容器,必须有后台程序在运行,否则容器就退出
    
    #查询docker镜像记录 
    
    docker search centos 
    改和查
  • 相关阅读:
    画了朵花
    定位
    浮动
    盒模型
    html+css笔记1
    闭包
    高阶函数
    函数
    Map Set iterable
    git stash clear/drop 后代码如何恢复
  • 原文地址:https://www.cnblogs.com/tianshuai1/p/11077910.html
Copyright © 2011-2022 走看看