• 云计算(Docker)


    Docker简介

    Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 可用于开发应用、交付应用、运行应用等场景。

    容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。Docker 允许用户将基础设施中的应用单独分割出来,形成更小的部分容器,从而提高软件交付速度。

    Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版)和 EE(Enterprise Edition: 企业版),通常使用社区版就可以满足大多数业务场景。

    Docker理念

    Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到“一次镜像,处处运行”。

     Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

    Docker 容器与虚拟机的区别 

    • Docker 容器与虚拟机很相似,但它们之间又有着很大的区别。
    • 虚拟机是通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。创建虚拟机时,会将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存,每个虚拟机都有独立的硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。
    • 虚拟机会消耗大量系统资源和开销,尤其是当多个虚拟机在同一物理服务器上运行时,每个虚拟机都有自己的子操作系统,大量精力以及资源被用于虚拟化的部署和运行上。
    • 容器类似于虚拟机,只是容器不是完整的操作系统,容器通常只包含必要的操作系统包和应用程序,这就是它们轻量级的原因。

    下载Docker 

     官网
    • docker官网:http://www.docker.com
     仓库
    • Docker Hub官网: https://hub.docker.com 

    Docker安装

    前提说明

    CentOS Docker 安装

    前提条件
    目前,CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS 7 (64-bit)上,要求系统为64位、Linux系统内核版本为 3.8以上,这里选用Centos7.x 

    查看自己的内核
    uname命令用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。 

     

    1. cat /etc/redhat-release
    2. uname -r
    安装步骤

    CentOS7安装Docker
    Install Docker Engine on CentOS | Docker Docs

    确定你是CentOS7及以上版本
    cat /etc/redhat-release

    卸载旧版本

    yum安装gcc相关

    CentOS7能上外网

    1. yum -y install gcc
    2. yum -y install gcc-c++
    安装需要的软件包

    执行命令

    yum install -y yum-utils
    
    设置stable镜像仓库

    推荐

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
     
    更新yum软件包索引
    yum makecache fast
    
    安装DOCKER CE 
    yum -y install docker-ce docker-ce-cli containerd.io
    
    启动docker 
    systemctl start docker
    

    测试 

    docker version
    

     

    docker run hello-world
    

     

    卸载

     • systemctl stop docker
    • yum remove docker-ce docker-ce-cli containerd.io
    • rm -rf /var/lib/docker
    • rm -rf /var/lib/containerd

    阿里云镜像加速

    开放云原生应用-云原生(Cloud Native)-云原生介绍 - 阿里云
    步骤:
    注册一个属于自己的阿里云账户(可复用淘宝账号)

    获得加速器地址连接
    登陆阿里云开发者平台
    选择容器镜像服务

     粘贴脚本直接执行
    直接粘

     

    或者分步骤都行

    1. mkdir -p /etc/docker
    2. vim /etc/docker/daemon.json
    3. #阿里云
    4. {
    5. "registry-mirrors": ["https://{自已的编码}.mirror.aliyuncs.com"]
    6. }

    激活配置文件 重启服务器 

    1. systemctl daemon-reload
    2. systemctl restart docker

    测试 

    docker run hello-world
    

    Docker常用命令

    帮助启动类命令
    1. 启动docker: systemctl start docker
    2. 停止docker: systemctl stop docker
    3. 重启docker: systemctl restart docker
    4. 查看docker状态: systemctl status docker
    5. 开机启动: systemctl enable docker
    6. 查看docker概要信息: docker info
    7. 查看docker总体帮助文档: docker --help
    8. 查看docker命令帮助文档: docker 具体命令 --help
    镜像命令 
    docker images
    

     

    各个选项说明:
    REPOSITORY:表示镜像的仓库源
    TAG:镜像的标签版本号

    IMAGE ID:镜像ID
    CREATED:镜像创建时间
    SIZE:镜像大小 

    同一仓库源可以有多个 TAG版本,代表这个仓库源的不同个版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。
    如果你不指定一个镜像的版本标签,例如你只使用 ubuntu,docker 将默认使用 ubuntu:latest 镜像 

    • OPTIONS说明:
    • -a :列出本地所有的镜像(含历史映像层)
    • -q :只显示镜像ID。 

    查找镜像 
    1. docker search [OPTIONS] 镜像名字
    2. OPTIONS说明:
    3. --limit : 只列出N个镜像,默认25
    4. docker search --limit 5 redis
    5. docker pull 某个XXX镜像名字
    下载镜像 
    1. ·docker pull 镜像名字[:TAG]
    2. ·docker pull 镜像名字
    3. ·没有TAG就是最新版
    4. ·等价于
    5. ·docker pull 镜像名字:latest
    6. docker pull ubuntu

    删除镜像 
    1. docker rmi 某个XXX镜像名字ID
    2. ·docker rmi -f 镜像ID
    3. ·删除多个
    4. ·docker rmi -f 镜像名1:TAG 镜像名2:TAG
    5. ·删除全部
    6. docker rmi -f $(docker images -qa)

     

    容器命令

    #使用镜像centos:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

    docker run -it centos /bin/bash 
    

    i: 交互式操作。
    -t: 终端。
    centos : centos 镜像。

    /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是/bin/bash。
    要退出终端,直接输入 exit: 

    -a :列出当前所有正在运行的容器+历史上运行过的
    -l :显示最近创建的容器。
    -n:显示最近n个创建的容器。 docker ps -n 1

    -q :静默模式,只显示容器编号。
    ·退出容器 

    关系 指向 进入正在运行的容器并以命令行交互
    ·两种退出方式
    exit
    run进去容器,exit退出,容器停止

    ctrl+p+q
    run进去容器,ctrl+p+q退出,容器不停止
    ·启动已停止运行的容器
    ·docker start 容器ID或者容器名

    ·重启容器
    ·docker restart 容器ID或者容器名
    ·停止容器
    ·docker stop 容器ID或者容器名

    ·强制停止容器
    ·docker kill 容器ID或容器名
    ·删除已停止的容器
    ·docker rm 容器ID

    ·一次性删除多个容器实例 

    1. ·docker rm -f $(docker ps -a -q)
    2. ·docker ps -a -q | xargs docker rm

    重要
    ·有镜像才能创建容器,这是根本前提(下载一个Redis6.0.8镜像演示)
    ·启动守护式容器(后台服务器)

    关系 前后对比 - 指向 启动交互式容器(前台命令行)
    ·在大部分的场景下,我们希望 docker 的服务是在后台运行的, 我们可以过 -d 指定容器的后台运行模式。
    ·docker run -d 容器名 

    使用镜像centos:latest以后台模式启动一个容器 

    docker run -d centos
    

    发布阿里云

    Docker镜像commit操作案例

    ·docker commit提交容器副本使之成为一个新的镜像
    ·docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:[标签名]
    ·案例演示ubuntu安装vim

    ·从Hub上下载ubuntu镜像到本地并成功运行
    ·原始的默认Ubuntu镜像是不带着vim命令的
    ·外网连通的情况下,安装vim 

    docker容器内执行上述两条命令: 

    1. apt-get update
    2. apt-get -y install vim

    ·启动我们的新镜像并和原来的对比

    1 官网是默认下载的Ubuntu没有vim命令
    2 我们自己commit构建的镜像,新增加了vim功能,可以成功使用。

    本地镜像发布到阿里云
    将本地镜像推送到阿里云

    ·本地镜像素材原型

    ·阿里云开发者平台
    ·https://promotion.aliyun.com

    ·点击个人实例

     

    ·选择镜像仓库

     

    ·进入管理界面获得脚本 

     ·将镜像推送到阿里云
    ·将镜像推送到阿里云registry
    ·管理界面脚本

     ·脚本实例

    ·设置访问凭证,输入三行命令

     

    将阿里云上的镜像下载到本地

    ·将本地上传的镜像删除

    docker rmi -f 0940de0a64e8
    

     

    ·从Registry中拉取镜像

    ·查看拉取的镜像 

    启动容器:docker run -it  0940de0a64e8 /bin/bash
    

     

  • 相关阅读:
    从0到1实现python基于RPC协议的接口自动化测试
    01【数据库的介绍】
    全新升级的AOP框架Dora.Interception[4]: 基于Lambda表达式的拦截器注册方式
    pycharm进阶使用学习
    canal部署、原理和使用介绍
    软件项目管理判断题
    回顾鹏城论道 | 点燃云原生之火,释放数字原力
    Java版工程行业管理系统源码-专业的工程管理软件- 工程项目各模块及其功能点清单
    让你的博客实现负载均衡
    多个rabbitmq配置
  • 原文地址:https://blog.csdn.net/Y2000104/article/details/134454515